LA PRIMERA REVISTA DE MSX DE ESPAÑA
Í.N. 36 Octubre 1987 • PVP 275 ptas. (incluido IVA)
SUPER RAMBO ESPECIAL
BIT-BIT
■■irnL¡\lrj>:é\
Diseñada pare
f»rrl f /fl
al usuario de un PC Stop
EL COMO Y EL POR QUEDE
UNS
OTRO PRODUCTO MANHATTAN TRANSFER; S.A. Stop
A la vanguardia de la prensa útil. Stop
SUSCRIBASE HOY MISMO A...
AMENTALMENTE UTIL
UNA REVISTA :
POR EL PRE
RECIBIRA DOCE EN SU DOMICILIO
ENVIE HOY MISMO ESTE BOLETIN DE SUSCRIPCION
Sí, deseo suscribirme a PCompatible a partir del número para cuyo pago adjunto talón bancario a la orden de
Manhattan Transfer, S.A., c/. Roca i Batlle 10-12, 08023. Barcelona.
Nombre y apellidos
Calle N c
Ciudad Provincia ....
Código Postal Teléfono
Tarifas: España por correo normal Ptas. 2.750.- Europa por correo aéreo Ptas. 3.000.
Europa por correo normal Ptas. 3.000- América por correo aéreo USA. $ 35.
Importante: Colocar en el sobre: Departamento Suscripciones PCompatible. NO SE ADMITE CONTRAREEMBOLSO.
Editorial
¿MSX-3?
En un número reciente de una conocida
revista del sector aparecía una
interesante reseña sobre la nueva
generación de ordenadores MSX, en la
que se llegaba a afirmar, entre otras
cosas, que los nuevos MSX dejarían de
llamarse así, y que estarían basados en
el nuevo cnip de Intel, el 1-80386,
abandonando de este modo el popular Z-
80 con que cuentan los MSX de primera
y segunda generación.
Esta noticia ha causado una verdadera
conmoción entre los usuarios de MSX,
ya que el cambio de cnip supondría un
grave problema de compatibilidad. La
publicación a la que nos referíamos,
soslayaba este problema con la posible
inclusión de un emulador Z-80 en los
nuevos aparatos.
Pero no nos molesta que se den este
tipo de noticias -de una forma poco seria
y profesional. Lo que nos molesta es que
se trate de puras fantasías, fruto de un
afán de espectacularidad, de llenar una
revista tan sólo con noticias
espectaculares a todo color.
Aprovechando la visita realizada por
Mr. Franch Berberich, director del
departamento internacional de ASCII
Corporation (fundadores de la norma
MSX) a nuestro país le consultamos
sobre este tema, desmintiéndonos
tajantemente todas estas noticias.
Cierto es que desde hace unos seis
meses los fabricantes del estándar se
plantean el lanzamiento de nuevos
ordenadores; pero lo hacen con una
visión de completa continuidad: no se
abandonará el Z-80, sino que se
mejorarán y acelerarán los diferentes
coprocesadores ( VDP, PSG, etc). De este
modo se consiguen mejores
prestaciones sin perder un ápice de
compatibilidad.
Por último decir que en algo sí
acertaron (pura suerte quizás), ya que
probablemente los nuevos ordenadores
no se llamen MSX-3. Las razones son de
lo más inocente. Las letras MSX
(provenientes en principio de Microsoft
extended) son muy difíciles de
pronunciar en japonés, cosa que,
comercialmente es un handicap que
debe solucionarse en los nuevos
aparatos.
Prometemos ampliar esta información
en siguientes números de nuestra
revista, así como las esperanzadoras
noticias que Mr. Berberich nos ofreció
acerca del futuro del estándar.
SUMARIO
AÑOIII N.°36 OCTUBRE 1987
P.V.P. 278 ptas. (Incluido IVA
y sobretasa aérea Canarias)
IÜTPUT/OUTPUT
Respondemos las consultas de nuestros lectores
SUPER RAMBO ESPECIAL
Un nuevo MEGABOM para los MSX de segunda generación
CALLXV
Las interioridades del DOS (II)
BIT-BIT
Cinco páginas en que comentamos lo último en SOFT MSX
EN PANTALLA.
Todas las novedades del panorama informático
MSX-2
Seguimos desvelando los secretos de los slots
TRATAMIENTO DE FICHEROS
QUICKSORT, la ordenación más rápida
POKES DE VIDAS INFINITAS
Todos los trucos para conseguir los POKES de tus- Juegos
TODAS LAS UTILIDADES PARA EL
«POKEADOR»
Busca
Casnom
Carbus
Letbus
TRUCOS DEL PROGRAMADOR
Trucos increíbles para que saques provecho de tu MSX
4
8
10
14
20
24
26
29
32
35
38
40
42
ES EDITADA POR MANHATTAN TRANSPER, 8JL
Director Ejecutivo: Birgitta Sandberg.
Redactor Jefe: Javier Guerrero.
Redactores: Wüly Mlragall , Silvestre Fernández, Rubén Jiménez y Caries P. Ula
Colaboradores: Angel Toriblo, Feo. Jesús Viceyra, Joaquín López.
Departamento de Programación: Juan C. González. Diseño: Félix Llanos.
Or aflamo: Juan Núñez, Jordl Jaumandreu, Caries Rublo. Suscripciones:
Silvia Soler. Redacción, Administración y Publicidad: : Roca 1 BaUle,
10-12. 08023 Barcelona. Tel.: (93) 211 22 56. Télex: 93377 TXSE E.
Depósito legal: M-7369-1987.
Fotomecánica y rotocompoalclón: Uiigraf, 8 A. Pujadas, 77-79. 08005 Barcelona.
Imprima: Qrofol. Poll¿. II Lafuensanta Pare. I Móetoles (Madrid)
Distribuya: O ME, 8 A. Plaza de Castilla 3. 16.° E. 2. 28046 Madrid
Todo el material editado es propiedad de Manhattan Transfer, 8 A.
Prohibida la reproducción total o parcial sin la debida autorización escrita.
Input
¿DIBUJAR CON
DATA?
Soy un novato en esto y lo
que más me gusta hacer con
mi MSX es hacer gráficos.
También me gustaría saber
dibujar con el mandato
DATA pero por muchas
pruebas que haga no sale
nada en la pantalla.
Jordi Montañés
BARCELONA
Lamentamos tener que co-
mentarte que la sentencia
DATA no tiene nada que ver
con los gráficos. Es cierto
que muchos programas grá-
ficos utilizan esta sentencia;
pero también se utilizan
GOTO, LT...THEN... y
FOR...NEXT
sin que nadie las asocie con
los gráficos.
Tendrás que contentarte
con los sistemas habituales
de realizar gráficos en los
COMPATIBILIDAD
MSX 23
En la sección Input/Out-
put del número 31 de MSX-
Extra apareció una carta en
la que Sergio Mojón Suárez
decía tener problemas de
carga con su ordenador
Sony HB-F9S. A mí me su-
cedió lo mismo al comprar
dicho aparato; pero tras ir
al concesionario SONY me
confirmaron que sólo se ne-
cesita introducir un POKE
antes de cargar el juego de la
cinta. Este POKE es:
POKE 65536,170
Ménica Ortega
Fernández
Te agradecemos que nos
hayas hecho llegar tu carta;
pero creemos que los proble-
mas de carga que surgieron
a nuestro comunicante eran
de otra índole por las expli-
caciones que nos daba en su
carta.
De todas formas hemos
creído interesante publicar
tu carta, ya que muchos
otros usuarios tienen tu
mismo problema.
Lamentablemente el
POKE que nos incluyes fun-
ciona sólo en ciertas ocasio-
nes. Ya hemos hablado de
estos POKES indicando que
-
SON V
, HíT3!T
W -
v/////////////ííiinniiiiitiii mumU \u\ V
J
i M i, id
UU 1
I |
L
LJ.
1 1
i
L_ .1 1
1 1
III l fi
i
-l MUÍ
X
^
1
8ony HB -F98
no son fiables al 100%. Aña-
dimos otro POKE para aque-
llos usuarios de MSX-2 que
no consigan cargar sus pro-
blemas.
POKE 65535,255
Estos POKES funcionarán
o no dependiendo del pro-
grama a cargar, así como del
aparato en que estemos tra-
bajando.
PROGRAMACION DE
JUEGOS
Tengo entendido que en
los juegos se utiliza mucho
el lenguaje máquina para
darles más rapidez. ¿Para
qué más?
Quisiera especializarme
en programas de juegos.
¿Dónde podría (si es que
existe algún lugar) estudiar
aquí en Barcelona o alrede-
dores?
¿En qué consiste vuestro
test de listados?
Joaquín Marques
Carrizo
Barberá del Vallés
(BARCELONA)
El lenguaje ensamblador
(C.M.) se utiliza en los Jue-
gos debido a sus dos propie-
dades fundamentales: rapi-
dez y economía de memoria.
Estas dos razones hacen que
éste sea el lenguaje preferi-
do por los programadores de
Juegos, así como por aque-
llos que diseñan y trabajan
con periféricos especializa-
dos (MIDI, Robótica, etc).
Lamentablemente no co-
nocemos de ningún centro
especializado en informáti-
ca que tenga cursos de pro-
gramación de videojuegos.
Existía uno en Barcelona
(especializado en MSX) que
incluía en sus cursos en-
samblador, juegos, y otros
interesantes aspectos pero
ha cerrado sus puertas a la
enseñanza desde principios
de este verano.
Respecto al test de üsta-
dos, se trata de una rutina
que emite un listado de nú-
meros de control. Una vez
hemos copiado un progra-
ma de alguna de nuestras
revistas hemos de apUcarle
el programa Test de Lista-
dos. Este programa nos en-
tregará una cifra de control.
Si esta cifra coincide con el
TOTAL pubUcado en la revis-
ta significa que el programa
ha sido correctamente
transcrito. En caso contra-
rio cada línea del programa
tiene su propia cifra de con-
trol, con lo que podemos
averiguar si está bien trans-
crita desde la revista.
TECLAS LOCAS
¿Qué ocurre cuando pulso
al mismo tiempo las teclas
CODE+GRAPH+SHIFT y
posteriormente CTRL?
Cuando lo hago en el menú
del principio se me pone la
pantalla de un solo color y si
hago SCREEN y doy LIST
me aparece un listado extra-
ño y me da RESET. Si hago
esto- en BASIC me salen Ok
hasta que deje de pulsar
CTRL.
¿Debo preoouparme? ¿Por
qué sucede esto?
Santiago Martines
MADRID
Pese a que los MSX son
aparatos de muy alta calidad
no son perfectos. Debido a la
peculiar estructura del chip
que controla el teclado, se
producen ciertos «errores»
al pulsar numerosas teclas
simultáneamente. Dado que
esto no suele ocurrir con de-
masiada frecuencia se pasó
por alto en ios controles de
calidad y ahora nosotros,
sufridos usuarios del están-
dar nos encontramos con
que nuestros ordenadores
fallan ante esta eventuali-
dad.
Hemos probado la combi-
nación de teclas que nos co-
mentas en varios ordenado-
res ( todos ellos SONY) y no
hemos detectado que ocurra
nada especial. Sin embargo
no te preocupes. Por ejem-
plo si pulsamos al mismo
tiempo las teclas SHIFT-
+ comillas +"A" aparecerá
ante nosotros el mensaje
CLOAD".
Es algo que difícilmente
podemos ayudarte a solucio-
nar. Debes aprender a con-
vivir con este tipo de errores
sin preocuparte. Simple-
mente evita el pulsar más de
3 teclas simultáneamente
en tu ordenador. ¡Y no te
preocupes en absoluto! Por
muy raras que sean las co-
sas que haga tu ordenador
en estas condiciones, son to-
talmente inocuas para su
circuitería. Como máximo
puedes perderlos datos con-
tenidos en la memoria en
ese momento.
PRINT TJSING
—
un
grama de gestión para lle-
var la contabilidad de un pe-
queño negocio y el problema
nos comentas de la RAM
principal, ya que esta me-
moria está ocupada por la
ROM BIOS (si se utiliza el
BASIC) o por el sistema de
interrupciones no enmas-
carabas (en cualquier otro
caso).
Suponemos por tanto, que
tales direcciones correspon-
den a la VRAM, y que el di-
bujo es cargado por el pro-
grama directamente en la
VRAM.
Si utilizas unidad de disco
es muy fácil conseguir esta
carga desde el BASIC, con la
instrucción BLOAD "nom",S.
Pero si trabajas desde el
cassette deberás cargar la
pantalla en memoria prin-
cipal y de ahí, con una pe-
queña rutina en ensambla-
dor, pasar la RAM a VRAM.
Para cargar la pantalla en
memoria principal (por
ejemplo en la dirección
&H90P0) deberás hacer:
BLOAD "nom",&H9<pplp
sólo queda pasar la RAM a
VRAM con una rutina en
C.M. o bien con un bucle en
BASIC.
de la pantalla, etc.
Te recomendamos, si quie-
res saber algo más sobre el
tema, que leas el artículo
aparecido en el número 32-
33 de nuestra revista: «Re-
programación de caracteres
en SCREEN 2».
Respecto a «sacarle jugo»
a tus programas; existen
muchas formas de hacerlo.
La más lógica es la de ven-
der dichos programas. Si los
programas estuvieran he-
chos en C.M. y tuvieran una
buena calidad podrías inten-
tar editarlos en cinta por
medio de alguna empresa de
Soft nacional, como DINA-
MIC o Manhattan Transfer
(a través del MSX-Club de
cassettes ). Si los programas
están hechos en BASIC es di-
fícil que se editen en cintaya
que el mercado está satura-
do de este tipo de progra-
marnos tus programas, que
si tienen una buena calidad
podrán ser publicados en
nuestras revistas, con la
consiguiente retribución
económica. ¡Es sólo una
idea...!
me sale al imprimir las ci-
fras, ya que las pone de iz-
quierda a derecha y no de de-
recha a izquierda como yo
quisiera para que cuadren
bien los números. Tengo en-
tendido que esto se solucio-
na con «PRINT USING» pero
no sé cómo utilizarlo.
Manuel Laxa Peres
MATAflA
Desgraciadamente una
instrucción tan importante
como PRLNT USING se en-
cuentra casi olvidada en los
manuales de BASIC.
Esta instrucción se utiliza
como un PRINT normal;
pero los datos que queramos
imprimir pueden forma-
tearse a nuestro gusto. Por
ejemplo, si queremos impri-
mir números enteros en un
espacio de 8 caracteres y
que queden alineados a la
derecha deberemos hacer:
PRINT USINO »######
##";iíum
Si queremos que el núme-
ro aparezca con dos deci-
males haríamos:
PRINT USING "#####.
##";Num
Existen muchas más po-
sibilidades para esta potente
instrucción; pero comentar-
las todas sería demasiado
extenso. Esperamos que es-
tos dos ejemplos basten
para tus propósitos.
GRABACION DE
PANTALLAS
En el programa de diseño
gráfico "DRAW AND PAINT"
al hacer el dibujo y luego al
grabarlo funciona bien; pero
al reproducirlo sólo se pue-
de ver cuándo el diseñador
está en memoria.
La pantalla de presenta-
ción se carga en las direccio-
nes:
INICIO: SPH0000
FIN: SPH37FF
EJEC: SPH0000
Una vez cargado, en vez de
ejecutarse se hace un RE-
SET. Me han dicho que pue-
do cambiar las posiciones de
memoria. ¿Cómo puedo ha-
cerlo?
Rolo Padonanl
GRANADA.
Ningún programa ni grá-
fico puede cargar en las di-
recciones de memoria que
BAGAR JUGO A LOS
PROGRAMAS
¿Para qué sirve la
BASE(IO)? ¿Qué se almace-
na ahí y cómo? ¿Para qué
sirve si ya tenemos las bases
11 y 12?
Tengo un par de progra-
mas con rutina inteligente
hechos por mí y quisiera sa-
ber cómo sacarles jugo para
poder comprarme una uni-
dad de discos.
Enric Carrera i Gallart
La variable del sistema
BASE(IO) almacena la TNP
(tabla de números de los pa-
trones) en SCREEN 2. Aun-
que al usuario final no se lo
parezca, el modo SCREEN 2
funciona de forma similar a
como lo hacen los modos de
texto, ya que la pantalla está
formada por caracteres que
se van redeñnlendo a la
hora de realizar los dibujos.
La tabla cuya dirección se
indica en BASE(IO) contie-
ne los caracteres que con-
forman la pantalla gráfica, y
gracias a ella se pueden con-
seguir efectos muy especta-
culares, scrollings parciales
FALLOS EN DISCO
Tengo una unidad de dis-
cos de simple cara SONY y
un ordenador TOSHIBA HX-
10 y quisiera que me resol-
vieran unos problemas que
me han surgido.
¿Puedo utilizar diskettes
vírgenes 2DD sin proble-
mas?
A veces me aparece DISK
FTJLL aunque quede mucho
espacio en el disco, y los pro-
gramas que aparecen en el
directorio no se ejecutan co-
rrectamente. ¿A qué puede
ser debido?
Bautis ta E nrique
Burrlana (CASTELLON)
Pese a que es un derroche
innecesario no existe nin-
guna contraindicación por
utilizar discos 2DD en tu
unidad. Te recomendamos
sin embargo, por razón de
economía, que utilices dis-
cos de una sola cara en tu
unidad de discos.
Respecto al error que nos
comentas (ocurrido repeti-
damente en diferentes dis-
cos) es debido a la sobrees-
critura de datos en el direc-
torio del disco. Esto puede
tener su origen en dos pun-
tos diferentes.
1. — Estás grabando en tus
diskettes programas comer-
cíales no preparados para
ser almacenados en disco.
Estos programas utilizan
las mismas zonas de me-
moria que el interfaz de la
unidad de disco, producién-
dose de este modo un con-
flicto que puede llegar a pro-
vocar la sobreescritura del
directorio.
2. — Si no estás incluyen-
do en tu disco este tipo de
programas, sino programas
en BASIC, o programas pre-
parados específicam en te
para el disco, se debe tratar,
sin duda, de un error en la
unidad de disco que deberá
ser solucionado por el ser-
vicio técnico correspondien-
te.
VOCES HUMANAS EN
MSX
Quisiera rectificar lo que
habéis dicho sobre'la obten-
ción de voces humanas en el
número 1 1 de vuestra revis-
ta, ya que hay un juego
(Valkyr) para MSX en que
se emiten voces humanas, lo
cual quiere decir que el chip
de sonido del MSX puede
emitir voces humanas.
José Antonio Fernández
Rodríguez
LA CORTJÑA
Agradecemos tu rectifica-
ción y reconocemos nuestro
craso error. 'Los MSX pue-
den perfectamente emitir
voces humanas, y así tam-
bién cualquier otro sonido e
incluso funcionar como sin-
tetlzador monofónlco.
A ti tenemos que corregir-
te y hacerte saber que no es
el chip de sonido el encar-
gado de estos efectos, sino
un bit del PPI (Port Progra-
máble de Interfaces) que
controla directamente el al-
tavoz. El chip de sonido, por
su especial forma de progra-
mación es incapaz de reali-
zar estos efectos.
Sin embargo, y gracias a
este bit del PPI se puede en-
viar directamente al altavoz
cualquier sonido previa-
mente digítalizado: una voz,
un grito, o cualquier otro
f ~ 1
CON GARANTIA
efecto que se desee. Espera-
mos tratar pronto este tema
e incluir una rutina que os
permita utilizar tales efec-
tos en vuestros propios pro-
gramas.
ADAPTADOR CCG-MSX
Quisiera que me informa-
rais si el adaptador de MSX
para SVI-328/318 se comer-
cializa en Madrid y en el
caso de que así sea, dónde
puedo conseguirlo y cuál es
su precio.
También querría saber
cuáles son las líneas que fal-
tan al programa Talismán
del número de Abril.
Juan Enrique Pérez
Muñoz
MAPUTO
Según las noticias de que
disponemos en este momen-
to hemos de decirte que el
adaptador CCO para conver-
tir los SVI-31 8 y SVI-328 en
MSX sólo se comercializa
desde Bar acaldo. Sin embar-
go puedes dirigirte a CCO
por correo, ya que es éste el
medio por el cual comercia-
lizan su adaptador. El precio
del mismo el 1 de Enero de
este año era de 7.840 ptas
(IVA incluido) y el del sub-
sistema de disco opcional de
1.800 ptas.
La dirección de CCO S&H
es la siguiente.
C.C.G. S&H
Lar rasólo, 13-4B
48902-BARACALDO (VIZ-
CAYA)
Tno: (94)462 46 52
(94) 44029 99
Respecto al programa TA-
LISMAN, desgraciadamente
hubo un error de fotocom-
poslclón, y fueron equivoca-
das dos páginas del progra-
ma. Dichas páginas se inclu-
yeron en el siguiente nú-
mero de MSX-Extra (núme-
ro 31 - Mayo).
FE DE ERRATAS
Andoni Regó Etxebarria,
creador del programa VER-
BOS para MSX-2, que apa-
reció publicado en nuestro
número 34 nos avisa de que
en el listado publicado exis-
te un pequeño error. La lí-
nea 1280 de este programa
debe quedar así:
1280 IF G$="12:00:00"
THEN PLAY
V10L64ade"
BIENV
TKT
T.N.T. Termina con los peligros del castillo
tenebroso armado con los barriles de TJí.T.
Pero ¡ten mucho cuidado! Manipular los ex-
plosivos es muy peligroso, y cualquier des-
cuido puede ser fatal. PVP. 1.000 Pts.
SKY HAWK. ün magnifico Juego de simula-
que ha de derribar al enemigo y regresar al
portaaviones sano y salvo. PVP. 1.000 pts.
LOTO. Este es el programa que estaban espe-
rando los usuarios de MSX para nacerse mi-
llonarios cuanto antes. El complemento
que más de un lector se na hecho rico. PVP.
900 Pts.
LORD WATSON. Este es un juego muy original
que combina el laberinto con las palabras
cruzadas. Los obstáculos fantásticos y el vo-
cabulario son los alicientes . PVP. 1.000 pts.
DEVIL'S CA8TLE. La más original, amena y
entretenida aventura hecha videojuego.
Eres un mago que debe romper el hechizo de
un castillo endemoniado, para lo cual... Exce-
lentes gráficos y acción a tope. PVP. 900 Pts. PVP.900pts.
MATA MARCIANOS. On Juego clásico en una
versión cuya mayor virtud es su diabólica ve-
locidad que aumenta a medida que superamos
las oleadas de los invasores extraterrestres.
VAMPIRE . Ayuda al audaz Guillermo a salir
del castillo del Vampiro, sorteando murcié-
lagos, fantasmas, etc. Un juego terrorífica-
mente entretenido para que lo pases de mie-
do. PVP. 800 Pts.
^v%Slím#""f PARA MSX-
r T T A T ^ T>v
G0PY
POR JOAQUIN LOPEZ
Menú» por vcnUnas irr*
formato» dr coptaa mmulaclón
r-n blanco y neftro copio
«prima seaeflne r.olorni
compatible con cualquier
CON GARANTIA
HARD C0PY. Para copiar pantallas. Tres
formatos de copias, simulación por blanco y
negro, copia sprites, redeflnic. de colores,
compatible con todas las impresoras ma-
tric. PVP. 2.500 Pts.
¿Cómo corregir los errores
de transcripción de los
programas?
La solución a los errores en
los programas es este TEST
DE LISTADOS.
CON GARANTIA
/1/IAN-WWsl TRANSFEPS
TEST DE LISTADOS. El segundo programa de
la Serie Oro es el útilísimo Test que te permi-
tirá controlar la corrección de los progra-
i de MSX CLUB y MSX EXTRA
CI>OS
KRYPt|)N
msxclub
de CASSETTES
IWOCT
QUINIELAS
KRYPTON. La batalla más audaz de las gala-
xias en cuatro pantallas y cuatro niveles de
dificultad. Un juego cuya popularidad es cada
vez mas grande entre los usuarios del MSX.
PVP. 500 Ptas.
El secreto de la
ÍON GARANTIA
0-BOOT. Sensacional juego de simulación
submarina en la que tienes que demostrar tu
pericia como capitán de un poderoso subma-
rino de guerra. Panel de mandos, sonar, tor-
pedos, etc. PVP. 700 Ptas.
QUINIELAS. El más completo programa de
quinielas con estadística de la liga, de los
aciertos, etc. e impresión de boletos. Acertar
no siempre es cuestión de suerte. PVP. 700
Ptas.
SNAKE. Entretenido y muy divertido Juego
en el que Snake procura comer unos núme-
ros que la engordan. Tanto las murallas que
la rodean como su larga cola pueden ser
mortales para ella. PVP. 600 Ptas.
EL 8ECRET0 DE LA PIRAMIDE. Atrevido
juego de aventuras a través de los misterios
y peligros que encierran los laberínticos pa-
sillos de una pirámide egipcia. ¡Atrévete si
puedes! PVP. 700 Ptas.
STAR RÜNNER. Conviértete en el audaz
piloto interestelar y lucha a muerte, a
través del hiperespacio, contra las defen-
sas del tirano Daurus. Dos pantallas y
cinco niveles de dificultad. PVP. 1.000 pts.
Si quieres recibir por correo certificado estas cassettes garantizadas recorta o copia este boletín y envíalo hoy mismo:
FLOPPY, El Preguntón. Un verdadero desafio
a tus conocimientos de Geografía e Historia
española. Floppy no perdona y te costara
'1.000 Ptas.
MAD FOX. Un héroe solitario es lanzado a
una carrera a vida o muerte por un desierto
plagado de peligros. Conseguir el combusti-
ble para sobrevivir es su misión. Diez niveles
de dificultad. PVP 1.000 pts.
n
Nombre y apellidos:
Dirección:
Población:
1
CP
□
n
□
□
□
□
KRYPTON _
UBOOT
HARDCOPY
LORD WATSON
LOTO
SNAKE
Ptas. 500,- □ EL SECRETO DE LA PIRAMIDE
Ptas. 700,- □ STAR RÜNNER ¿_
Ptas. 2.500,- □ TEST DE LISTADOS
. Ptas. 1.000- □ MATA MARCIANOS
Ptas. 900.- □ DEVIL'S CASTLE
Ptas. 600.- □ FLOPPY
Prov
Ptas. 700,-
Ptas. 1.000,-
Ptas. 500-
Ptas. 900-
Ptas. 900.-
Ptas. 1.000,-
Tel.
□ MAD FOX
□ VAMPIRO
□ SKYHAWK
□ TNT
Ptas. 1.000,-
Ptas. 800,-
Ptas. 1.000-
Ptas. 1.000,-
, lias
J
Ptas. 70 - Remito talón bancario de Ptas.
a !a orden de Manhattan Transfer, SA
ATENCION: Los suscriptores tienen un descuento del 10% sobre el precio de cada cassette.
IMPORTANTE: Indicar en el sobre MSX CLUB DE CASSETTES. ROCA I BATLLE, 10-12 BAJOS. 08023 BARCELONA
Para evitar demoras en la entrega es imprescindible indicar nuestro nuevo código postal.
NUESTRAS CASSETTES NO SE VENDEN EN QUIOSCOS. LA UNICA FORMA DE ADQUIRIRLAS ES SOLICITANDOLAS
A NUESTRA REDACCION. ¡NO SE ADMITE CONTRA REEMBOLSO!
SOFTWARE
Los MEGAROM comienzan a desembarcar en nuestro mercado. En este caso, este sensacional juego se basa
en las aventuras de RAMBO en su camino por liberar a un prisionero de los vietnamitas.
RRodo en orden! Sobrevolamos
I* B la zona de lanzamiento... Pue-
I de lanzarse cuando lo desee...
Así empieza este espectacular juego.
RAMBO sobrevuela la zona enemiga y
se lanza en paracaídas para rescatar al
único superviviente de los campos de
prisioneros vietnamitas. En su camino
sólo encontrará ingentes cantidades de
enemigos que, sin embargo, son su úni-
co método para conseguir el armamen-
to necesario para llevar a buen térmi-
no su difícil misión.
Pero antes de entrar de lleno en el
juego comentemos algo sobre el sopor-
te físico del mismo.
SUPER RAMBO
SUPER RAMBO son en realidad dos
juegos, dos cartuchos de ROM, para ser
exactos. El primero es una versión
para los MSX de primera generación,
mientras que el segundo, SUPER RAM-
BO ESPECIAL, es un MEGAROM que
sólo funcionará en los MSX de segunda
generación.
Existen varias diferencias entre
ellos. La primera y más palpable es la
enorme diferencia existente en la ca-
lidad de los gráficos empleados en am-
bas versiones. Los gráficos empleados
en la versión ESPECIAL (sólo MSX-2)
tienen un excelente grado de realismo.
En cambio, la versión MSX-1, para sub-
sanar su menor calidad gráfica, ha in-
cluido más peligros en el juego (arañas
y serpientes venenosas entre otros),
con lo que el juego se hace algo más in-
teresante.
Para centrarnos adecuadamente ha-
blaremos, a partir de ahora, de sólo
una de las versiones, SUPER RAMBO
ESPECIAL, si bien muchas de los pun-
tos comentados servirán también para
SUPER RAMBO (MSX-1).
SUPER RAMBO ESPECIAL
Antes de comenzar el juego quere-
mos recomendaros la utilización del
mapa de este juego, publicado en el nú-
mero de Septiembre de nuestra revista
hermana MSX-CLUB en forma de pós-
ter en color. Gracias a este mapa po-
dréis localizar rápidamente los pasajes
secretos que os conducen por entre los
setos a diferentes depósitos de armas,
conocer el lugar en que se encuentra el
arma que estéis buscando, etc.
Nada más conectar el cartucho a
Estas dos pantanas situaciones típicas en el Juego: La cabana de prisioneros y
el bosque.
vuestro MSX-2 aparece en la pantalla
una excelente digítaliz ación de RAM-
BO, que sirve de presentación al juego.
El objetivo de la misión es recorrer
más de 250 pantallas hasta localizar al
prisionero y luego huir con él hasta el
helicóptero que se encuentra en un cla-
ro de la selva preparado para la huida.
Pero este camino no es nada fácil.
Existe un gran número de soldados
enemigos acuartelados en esta zona,
defendiendo con uñas y dientes unas
pequeñas edificaciones de caña de
bambú (realizadas con unos gráficos
soberbios). Dentro de estas edificacio-
nes se encuentran (además de cinco o
seis nuevos enemigos) las armas que
RAMBO precisa para terminar la mi-
sión.
Para complicar más aún ésta, mu-
chas de las cabanas de caña están ce-
rradas con gruesos candados y para
poder entrar se necesitarán de unas
llaves que, cómo no, se encuentran es-
parcidas a todo lo largo y ancho de la
selva que compone el escenario de este
juego.
Y aún hay más. A lo largo de toda la
ina^o para ¿cas»
aventura encontraréis varios parte-
rres sembrados con «lindas florecitas».
Existen dos tipos de flores: las flores
azules, medicinales, recompensarán a
RAMBO con una cantidad extra de
vida, mientras que las rojas y blancas,
venenosas, reducirán considerable-
mente ese nivel de energía.
A los enemigos los distinguiréis fá-
cilmente por el color de sus uniformes,
y según sea éste, dispondrán de un
arma determinado: revólver, metralle-
ta, o granadas y cohetes (son los más
peligrosos). En cuanto a las armas de
RAMBO, dispone de las siguientes: cu-
chillo, pistola, metralleta, flecha, gra-
nada, cohete y bazooka.
Pistolas, metralletas, flechas son ar-
mas muy aparentes; pero con poca uti-
lidad. Para poder utilizarlas hemos de
estar en línea de tiro con el enemigo,
que por esa misma razón no duda en
dispararnos a nosotros.
Sin duda, el arma más eficaz es el cu-
chillo. Sólo hay que acercarse sigilo-
samente al enemigo y atacarle cuando
esté desprevenido.
Por último granadas, cohetes y ba-
zookas son fundamentales para el éxi-
to de la misión, ya que nos permitirán
arrasar cabanas que nos cierran el
paso, o destruir rocas molestas. Hay
que decir que, personalmente, preferi-
mos el bazooka, ya que es el arma con
mayor poder destructivo.
Sólo una cosa más respecto a las ar-
mas. Estas se acumulan mientras no
las utilicemos, por lo que RAMBO pue-
de acabar portando un envidiable ar-
senal. De igual forma se acumulan las
flores azules, que podremos utilizar
cuando nos sean necesarias, y las lla-
ves que nos permitirán abrir ciertas
cabanas.
EMPECEMOS EL JUEGO
Primera fase: Al iniciar el juego nos
encontramos en medio de la selva, con-
tando con un cuchillo como única
arma. Lo primero que debemos hacer
es aprovisionarnos del arsenal adecua-
do. Para ello lo más interesante es ba-
jar a la pantalla inferior y de alh hacia
la izquierda. Recorriendo unas cuantas
pantallas arriba y abajo llegaremos a
una cabana que contiene el bazooka.
Este arma es totalmente necesaria, ya
que sin eUa no podremos llegar hasta
nuestro primer campamento.
Antes de llegar a la cabana del ba-
zooka notaremos que un extraño alia-
do se ha unido a nosotros, disparando
a todos nuestros enemigos. ¡Intentad
conservar su ayuda todo el tiempo po-
sible, haciendo que se aparte del fuego
enemigo!
Sólo al final de esta primera etapa
encontraremos nuestro camino cerra-
do por unas rocas. Es el momento de
utilizar el bazooka. Tras destruir esas
rocas encontraremos una cabana. Al
entrar en ella observaremos un código
en la parte inferior de la pantalla. A
partir de ahora podemos empezar
nuestras siguientes partidas en este
punto con sólo introducir el código
(además empezamos con un intere-
sante arsenal).
CLAVE 1: 10A09A38
Segunda fase: La segunda fase es bas-
tante similar a la primera, con una sal-
vedad. Encontraremos dos puntos en
los que las flores venenosas nos cie-
rran el paso. En el primero podemos
abrirnos paso destruyendo con el ba-
zooka una cabana de bambú. Para pa-
sar al segundo plantel de flores lo me-
jor es utilizar una flor azul. Esta flor
nos dará la suficiente energía como
para atravesar el plantel y llegar a
nuestro segundo campamento, donde
se nos dará una nueva clave.
CLAVE 2: 04K14042 .
Tercera fase: La tercera fase es bas-
tante corta y sencilla; pero necesita-
mos una buena provisión de flores azu-
les. Es además muy importante encon-
trar el pasaje secreto (entre setos que
no son tales), ya que nos evitará gastar
xina flor azul.
En la última parte de esta fase en-
contramos una enorme extensión de
plantas blancas y azules; pero como es-
tán situadas de forma alterna, pode-
mos traspasarlas sin ningún proble-
ma, ya que la energía que nos reste una
flor venenosa, nos la recuperará la flor
azul. .
CLAVE 3: 03M16041
Cuarta fase: El río. En este río tro-
pical, lleno de fango y rocas, debemos
luchar contra la corriente. Existe, sin
embargo, un método muy sencillo para
atravesarlo sin problemas. Basta con
dirigirse a la derecha y apretar todo lo
rápida que se pueda el botón de dispa-
ro. Podéis también apoyaros en las ro-
cas que sobresalen en el curso del río.
CLAVE 4: 05U01K42
Quinta fase: Sin duda la más sencilla
de toda la aventura. Basta con ir siem-
pre hacia arriba, y localizar la cabana
en la parte izquierda de nuestro cami-
no. La entrada se halla cerrada por
unas rocas, que podemos destruir con
nuestro querido bazooka, y tras ellas
un pasaje secreto entre los setos nos
llevará al campamento.
CLAVE 5: 03K12M41
Sexta fase: Nada más abandonar
nuestro quinto campamento encontra-
remos un mapa (que sirve de muy poco
ya que es prácticamente ininteligible).
Descendiendo otro gran trecho llega-
mos a una zona con setos. Hay que en-
contrar entre ellos un pasaje secreto
que nos lleva a un claro. Una vez aquí,
con el bazooka, podremos abrirnos
paso hasta una cabana enemiga y, un
poco más abajo, nuestro sexto campa-
mento.
CLAVE 6: 04K29K38
Séptima fase: Superar la séptima
fase es sólo cuestión de bazooka. Hay
que localizar también un gran número
de pasajes secretos, que nos conduci-
rán poco a poco a la prisión. Una vez
allí, y tras utilizar una llave para abrir-
la, podremos rescatar al prisionero.
El prisionero, una cosa raquítica que
nos sigue a todos lados, es el principal
objetivo de nuestra misión. No hemos
de exponerlo, por ningún motivo, al
fuego enemigo.
CLAVE 7: 03S21K40
Octava fase: Una fase de puro trá-
mite, en que nos tenemos que limitar a
seguir los pasillos adecuados. No en-
contraremos ningún obstáculo impor-
tante.
CLAVE 8: 12P04M29
Novena fase: Esta última fase es un
verdadero laberinto, y se agradece más
que nunca disponer del mapa publica-
do en nuestra revista hermana MSX-
CLUB. Tras encontrar la salida a tal la-
berinto y destruir una cabana que nos
estorba el paso, llegamos a nuestro no-
veno y último campamento.
CLAVE 9: 10Y20T31
Final: Al lado de nuestro campamen-
to encontramos un helicóptero, listo
para nuestra fuga. Hemos de montar
en él (con el prisionero) y huir hacia
la zona inferior derecha del juego. So-
brevolaremos con el helicóptero nu-
merosas pantallas; pero ahora ya sa-
tisfechos del trabajo realizado, y sin
ningún peligro para nuestras vidas.
Tras alcanzar la pantalla inferior de-
recha aparece el típico mensaje THE
END, en este caso acompañado por una
triunfal tonada y por numerosas ban-
deras americanas (un detalle muy
acertado, dado el carácter del perso-
naje).
Terminamos aquí el comentario de
este sangriento juego, lleno de emoción
y acción en sus más de 250 pantallas.
Sin duda, un MEGAROM de excepción.
CALLXV
mes, tal y como prometimos, entraremos a fondo en las interioridades del "DOS", basándonos en la
relación de funciones simiinistradas en el número pasado.
LA LENGUA DE SHAKESPEARE
No hace falta entender las obras
de Shakespeare en su lengua
natal para defenderse con los
ordenadores. Sin embargo, los que
creen que memorizar los vocablos co-
inglés son unos optimistas. En todos
los estudios técnicos superiores se in-
cluye al inglés como asignatura obli-
gatoria y la informática no es una ex-
cepción.
Es importante que cualquiera que
piense dedicarse a la programación
tenga una cierta base en esta lengua y
aún más, es bueno que adquiera la cos-
tumbre de nombrar a sus procedimien-
tos y de añadir comentarlos en inglés.
Tarde o temprano debemos presen-
tar alguno de nuestros listados a al-
guien que no conoce el castellano he-
mos de pelearnos con algún manual en
inglés.
Sin ir más lejos, corre por ahi un li-
bro excelente sobre MSX2, escrito... ¡en
japonés! Afortunadamente los autores
han tenido el acierto de incluir peque-
ños comentarios a los listados en in-
glés. Muy escuetos, por cierto, pero su-
ficientes.
Todo esto viene a cuento por el hecho
de que son muchas las palabras cons-
truidas con siglas y abreviaturas que
forman términos relacionados con las
interioridades del DOS. La similitud de
los vocablos y la cantidad de éstos hace
que sea fácil perderse si no se tiene una
pequeña base de inglés.
Empecemos sin más, con el aluvión
de siglas.
DMAYFCB
El DMA (Direct Memory Access) es
la zona de comunicaciones reservada
para la entrada y salida de datos hacia
el disco. Con estas siglas se designa el
procedimiento por el cual un disposi-
tivo lee o escribe en la memoria sin
contar con la CPU. En realidad su em-
pleo en microordenadores es una reli-
quia del pasado, puesto que en la ac-
tualidad suele ser la CPU la que se en-
carga de la transferencia de los datos.
Aún asi el nombre ha perdurado.
Nosotros designaremos por DMA la
posición de memoria en la que se em-
pieza a realizar la transferencia. Es
muy importante tener en cuenta que es
preciso saber en cada momento dónde
se van a escribir o leer los datos. Por
tanto, resulta obligado fijar una posi-
ción al DMA antes de realizar una ope-
Fig. 1. Disposición de datos
i FCB.
12
14
16
20
22
24
25
26
28
30
32
36
A/
M/
D/
ID
DIR
lo
Drive
Bloque en
curso
Tamaño de un
registro
Fecha
Hora
Periférico
Local ización
directorio
Primer cluster
Ultimo cluster
Ultimo cluster
(con relación
al inicio del
fichero)
Registro en
curso
ración de intercambio con el disco.
Vale cualquier posición de memoria
exceptuando las comprendidas entre
6P4000 y 6PH8000, puesto que es aquí
donde se pagina el controlador de disco
y éste no puede leer o escribir sobre sí
Fig.2. Disposición de datos en directorio.
11
12
22
24
26
28
32
N
O
M
B
R
E
D
§
L
F
I
C
H
E
R
O
ATB
F
U
T
U
R
A
S
E
X
P
A
N
S
I
O
N
E
S
A/
M/
D/
lo
Atributos
Fecha
Hora
Primer cluster
10
mismo. Naturalmente habrá que vigi-
lar que la zona de transferencia no
"machaque" algo importante (las va-
riables del sistema, por ejemplo).
El FCB (Fue Control Block) es la par-
te que se encarga de decir al DOS qué
es lo que debe hacer con un fichero. Se
trata, por así decirlo, de un conjunto de
variables agrupadas que sirven para
comunicarse con el DOS. La figura 1 re-
coge la composición de un FCB.
Cuando se desea abrir un fichero, bo-
rrarlo, renombrarlo, escribir en él, etc.,
es preciso construir un FCB, para que
el DOS pueda trabajar con el fichero en
cuestión.
Quizá alguien piense que el FCB es
idéntico a la información que se en-
cuentra en la zona del directorio de un
disquette. Sin embargo, basta compa-
rarlo con la figura 2, que recoge la dis-
posición de los datos de un fichero den-
tro del directorio, para notar la gran
diferencia que existe entre ambos.
Lo que sí es idéntico a un FCB es la
llamada "entrada al directorio".
Las "entradas al directorio" son una
copia temporal y modificada de la in-
formación de una parte del directorio
del disquette, que el DOS guarda en la
RAM para agilizar el trabajo. Con ello
se consigue no perder el tiempo modi-
ficando constantemente el directorio a
cada cambio que se produzca en algún
fichero. La información se va actuali-
zando, en la entrada al directorio co-
rrespondiente y es escrita sólo cuando
el fichero en particular se cierra o
cuando se ordena un cierra en conjun-
to. Ello explica por qué es peligroso
cambiar de disquette cuando hay un fi-
chero abierto, ya que las entradas al di-
rectorio en memoria serán escritas so-
bre el nuevo disco y éste quedará in-
servible.
DPB Y FAT
El DPB (Drive Parametrer Block) es
una tabla donde se especifican las ca-
racterísticas físicas y lógicas del dis-
quette. Hay una por cada unidad de dis-
cos conectada y están ubicadas en la
RAM. Aunque dejamos para más ade-
lante su descripción completa, vale
adelantar que la información que se
guarda en el DPB va desde el número
de bytes que conforman un sector has-
ta el cluster donde empieza el directo-
rio pasando por punteros a la FAT.
La FAT (File Allocation Table) está
grabada en los primeros sectores de un
disquette y sirve para guardar una re-
lación concreta de las partes del disco
que contienen datos útiles y de las que
están disponibles. Su funcionamiento,
al igual que el del DPB, será tratado en
el futuro.
Ahora, y a fin de entrar en materia
de una forma práctica, lo mejor es em-
pezar a trabajar con el DOS.
A continuación se describe una ru-
tina que actúa de forma similar al co-
nocido comando "DUMP" del CP/M o del
MS/DOS.
DUMP es una de esas rutinas que se
escriben en minutos y se emplean toda
la vida. Su cometido, como indica su
nombre, es "volcar" los datos de un fi-
chero en la pantalla (o en la Impreso-
ra). El resultado es un conjunto de lí-
neas que muestran el contenido hexa-
declmal y alfanumérico de todos los by-
tes que hay en el fichero especificado.
T.T8
10 '«**« DUMP desde BASIC ««I
20 1
30 'Debe cargarse con BLQAD"DUMP.BIN"
40 'Luego, ha de inic iai izarse
50 'con DEFUSR=&HC000. El DUMP se
60 'logra haciendo ?USRC NOMBRE*)
70 *
80 '
90 FORX=&HCOO0 TQ &HC12B:REA0 V$
100 PQKEUAL("i,H"+V$)
no s=s+peekcx>:next
120 CLSÜF S O 34771! THEN BEEP:PRINT"
HAY UN ERROR" : EN0
130 PRINT"DATAS CORRECTAS"; CHRX 10)
140 PRINT'Pulsa una tecla para"
150 PRINT-grabar DUHP.BIN"
160 Z$=INKEY$:IFZ$=-THEN160
170 BSAVE" DUMP . B I N" , 4HC00O , &HC 1 2B
180 DATA ED,73,2C,C1,CD,A6,C0,CD,D0,C0,
3A í B0 > F3,06,06,CB J 3F,CB,3F f 6F,26 ( 00 J 22 í
30 f Cl ( CD»03,Cl,CD,9F,C0,3E,0C,C0 ( 95,C0,
6C,CD,F3,C0,22,2E,C1,3A,2F,C1,CD,84,C0,
3A,2E,C1,CD,84,C0,3E,3A,CD,95,C0,3E,20,
CD,95,C0
190 DATA 21,32,Cl,E0,4B,2F,Ct,C5,C5,7E,
CD, 84, C0,3E,20,CD, 95, C0,C1,23,10,F2,21,
32,C1,C1,C5,7E,FE,20,38,04,FE,80,38,02,
3E,2E,CD,95,C0,3E,20,C1,23,10,EB,3E,0D,
C0,95,C0,3E,0A,CD,95,C0,2A,2£,C1,E0,4B,
30,C1,09
200 DATA 18,A1,F5,1F,1F,IF,1F,CD,80,C0,
F1,E6,0F,C6,90,27,CE,40,27,0E,02,5F,E5,
CD,7D,F3,B7,E1 1 C9,11,32,C1,0E,1A,18,F2 )
06,0B,21,44,C1,AF,77,23,36,20,10,FB,06,
18,23,77, 10, FC,13,1A,13,6F,1A, 67, 0E.09,
U,45,Ci
210 DATA CD,D0,C0,D8,11,4D,C1,0E,03,EA,
D0,CO,23,7E,FE,2E,C8,FE,22,3F,C8,ED,A0,
E0,18,F3,ll,44,Cl,0E,0F,CD,98,C0,C8,ll,
14,C1,0E,09,CD,98,C0,ED,7B,2C,C1,C9,E5,
21, 01, 00,11,44, Ct,0E,27,C0,98,C0, El, C8,
18,EB,2l
220 DATA 00, 00,22,65,C1, 22,67, C1.3A.30,
C1,6F,22,52,C1,C9,0A,0D,46,49,43,48,45,
52,4F,20,4E,4F,20,45,4E,43,4F,4E,54,52,
41,44,4F,24
10 'IWII DUMP desde MSX0QS «III
20 '
30 'Debe usarse haciendo:
40 'A>DUHP NOMBRE
70 '
80 '
90 FQRX=&HC000 T0 ÍHC0F1:READ V$
100 P0KEX,VAL("iH"+V$)
no s=s+peekíx):next
120 CLSIIF S O 24135! THEN BEEP: PRINT"
HAY UN ERROR" :END
130 PRINT"DATAS CORRECTAS"; CHR$( 1*0)
140 PRINT'Pulsa una tecla para"
150 PRINT"grabar DUHP.C0H"
160 2$=INKEY$: IF2$=""THEN160
170 0PEN'DUMP.C0H"F0R 0UTPUT AStl
180 FOR X=4HC000 T0 &HC0F1
190 PRINTtl,CHR*(PEEKÜ));:NEXT
200 END
1000 DATA E0,73,F2,01,CD,A3,01,3A,B0,F3
,D6,06,CB,3F,CB,3F,6F,26,00,22,F6,01,CD
,C9,01,CD,9C,01,3E,0C,C0,92,01,6C,CD,B9
,01,22,F4,01,3A,F5,01,CD,81,01,3A,F4,01
,CD,81,01,3E,3A,CD,92,01,3E,20,CO,92,01
,21,F8,01
1010 DATA ED,4B,F5,01,C5,C5,7E,CO,81,01
,3E,20,CD,92,01,C1,23,10,F2,21,F8,01,C1
,C5,7E,FE,20,38,04,FE,80,38,02,3E,2E,CD
, 92,01, 3E,20,C1, 23,10, EB,3E,0D,CD,92,01
,3E,0A,CD,92,0t,2A,F4,01,ED,4B,F6,0l,09
,18,A1,F5
1020 DATA lF.lF.iF.lF.CD.SA.Oi.Fl.EG.OF
,C6,90 ( 27,CE,40,27,0E,02,5F,E5,CD,7D,-F3
,87,E1,C9,11,F8,01,0E,1A,18,F2,11,5C,00
,OE,OF,CD,95,01,C8,11,DA,01,OE,09,CD,95
,01,ED,7B,F2,01,C9,E5,21,01,00,11,5C,00
,0E,27,CD
1030 DATA 95, 01, El, C8, 18, EB, 21, 00, 00, 22
,7D,00,22,7F,00,3A,F6,01,6F,22,6A,00,C9
,0A,0D,46,49,43,48,45,52,4F,20,4E,4F,20
,45,4E,43,4F,4E,54,52,41,44,4F,24
DESCRIPCION DE LA RUTINA
El listado de la rutina de "DUMP" no
está todo lo optimizado posible. Me ha
parecido oportuno separar en partes
todas las pequeñas rutinas que com-
ponen el listado, en lugar de construir
un programa más estructurado. El mo-
tivo no es otro que dejar claro que cada
una de las partes es una pieza nece-
saria que se usa en esta rutina en par-
ticular y en cualquier otra que se cons-
truya para trabajar con el DOS. Lo úni-
_
11
CALLXV
co que puede variar es el bucle princi-
pal, que es particular a "DUMP", pero
los módulos de fijación del DMA (SET-
DAM), ajuste del PCB (SETFCB), cons-
trucción de un FCB (MAKEPCB), etc.;
son necesarios que en casi todos lios
programas que corren bajo el DOS.
Dicho esto, pasemos a la descripción
de la rutina.
La línea 30 guarda el puntero de pila,
a fin de restaurarlo y devolver el con-
trol al BASIC si se produce un error (si
no se encuentra el fichero, los datos es-
tán deteriorados o se alcanza el final de
éste).
La rutina MAKEFCB (850-1180)
toma la cadena de caracteres pasada
desde el BASIC (apuntada por DE) y la
transforma en un nombre de fichero
L
I
S
T
A
D
o
10
0R6 IC000
390
LD HL , DMA
770 BDQS:
PUSH HL
1150
RET Z
20 ;
400
POP BC
780
CALL «F37D
1160
LDI
30
LD (STACK).SP
410 L2:
PUSH BC
790
QR
A
1170
RET P0
40
CALL HAKEFCB
420
LD A, (HL)
800
POP
HL
1180
JR GET
50
CALL 0PEN
430
CP 32
810
RET
1190 0PEN:
LD DE, FCB
60
LD A,(tF3B0)
440
JR C, NOVAL
820 SETDHA:
LD
DE, DMA
1200
LD C,tF
70
SUB 6
450
CP 128
830
LD
CttlA
1210
CALL BD0S
80
SRL A
460
JR C.VAL
840
JR
BD0S
1220
RET Z
90
SRL A
470 noval:
LD A,".'
850 HAKEFCB:
LD
6,11
1230
LD DE, ERRO
100
LO L,A
480 val:
CALL PRINT
860
LD
HL, FCB
1240 ERROR:
LD C,9
110
LD H,0
490
LD A," •
870
XOR
6
1250
CALL B00S
120
LD (DAT),HL
500
POP BC
880
LD
(HL) , A
1260 exit:
LD SP.(STACK)
130
CALL SETFCB
510
INC HL
890 L3¡
INC
HL
1270
RET
UO
CALL SETDHA
520
DJNZ L2
900
LD
(HL)," ■
1280 READ:
PUSH HL
150
LD A, 12
530
LD A, 13
910
DJN2
L3
1290
LD HL.t
160
CALL PRINT
540
CALL PRINT
920
LD
B.36-12
1300
LD DE, FCB
170
LD L,H
550
LD A,10
930 L4:
INC
HL
1310
LD C,I27
180 LO:
CALL READ
560
CALL PRINT
940
LD
(HL) , A
1320
CALL BDOS
190
LD (POS).HL
570
LO HL.(POS)
950
DJNZ L4
1330
POP HL
200
LD A,(P0SM)
580
LD BC, (DAT)
960
INC
DE
1340
RET Z
210
CALL HEX
590
ADD HL, BC
970
LD
A, (DE)
1350
JR EXIT
220
LD A, (POS)
600
JR LO
980
INC
DE
1360 SETFCB:
LD HL,0
230
CALL HEX
610 ;
990
LO
un
1370
LD (FCB+33),HL
240
LD A,':"
620 ;
1000
LD
A, (DE)
1380
LD (FCB+35),HL
250
CALL PRINT
630 HEX:
PUSH AF
1010
LD
H,A
1390
LD A, (DAT)
260
■ LD A,' "
640
RRA
1020
LD
C 9
1400
LD L,A
270
CALL PRINT
650
RRA
1030
LD
OE.FCB+l
1410
LD (FCB+14),HL
280
LD HL,0HA
660
RRA
1040
CALL GET
1420
RET
290
LD BC.(DAT-l)
670
RRA
1050
RET
C
1430 ERRO:
DEFB 10,13
300
PUSH BC
680
CALL DI6H
1060
LD
DE.FCB+9
1441
DEFH "FICHERO NO
310 Ll:
PÜSH BC
690
POP AF
1070
LD
C,3
320
LD A,(HL)
700 DI6H:
AND #F 1
1080
JP
PE.6ET
145# |
330
CALL HEX
710
ADO A, 190
1090
INC
HL
1461 |
2
LO A/ »
720
DAA
1100 6ET:
LD
A, (HL)
147i STAtti
KFNf
CALL PRINT
730
ADC A, #40
1110
CP
■ ■
1481 POS!
KFNf
360
POP BC
740
DAA
1120
RET
Z
149f DATi
KFNf
370
INC HL
750 PRINT:
LD C,2
1130
CP
34
1911 DHAi
0EFS 18
Dle por el
La rutina OPEN ( 1 190-1220) abre el
fichero para leerlo. El DOS pone el acu-
mulador a cero si la apertura es exi-
tosa. En otro caso, el sistema operativo
no ha sido capaz de encontrar el fiche-
ro pedido o el nombre pasado contiene
caracteres incorrectos, y la rutina vol-
verá al BASIC mostrando el error.
Las líneas 60 a 120 leen el ancho de
la pantalla (WIDTH) que se guarda en
la variable del sistema situada en
SPHF3BO. Al final, se coloca en DAT el
número de datos a representar por lí-
nea. La fórmula empleada es DAT =
(WIDTH-6)/4.
La rutina SETFCB ( 1360-1420) pone
los punteros de lectura secuencial a
cero, es decir, se indican al DOS que el
primer registro a leer es el cero. Asi-
mismo, se fija a la longitud de un re-
gistro a los caracteres que contiene
12
una línea (DAT).
La rutina SETDMA (820-840) fija el
área de transferencia de datos a un
nuevo DMA, que es un pequeño buffer
para almacenar un registro (los carac-
Las líneas 150-160 borran la pan-
talla.
La línea 170 inicializa el contador a
cero.
Las líneas 180 a 600 conforman el
bucle principal del programa. Se em-
pieza leyendo un registro y se sigue im-
primiendo el número de línea (190-
270). Las líneas 280 a 380 imprimen
el contenido hexadecimal de los carac-
teres de un registro, dejando un espa-
cio en blanco entre los datos. A conti-
nuación, las líneas 390 a 520 impri-
men el código de cada carácter del re-
gistro, mirando que no se trate de un
código de control o de un carácter se-
migráfico, en cuyo caso se imprime un
punto. Por último, las líneas 530 a 600
completan el bucle principal haciendo
un avance de línea e incrementando el
contador.
La rutina HEX (630-740) escribe los
nido del acumulador.
EMPLEO DE "DUMP"
Lo primero que hay que hacer cuan-
do se tiene a "DUMP" en la memoria es
definir la llamada con algo como: "DE-
FUSR = &HC000". A continuación hay
que suministrarle el nombre del fiche-
ro que se desa volcar. El procedimiento
a seguir se sirve de la facultad del BA-
SIC para intercambiar parámetros con
rutinas del usuario. Hay que hacer algo
como: PRINT USR ("Nombre"). El in-
térprete colocará el nombre en la me-
moria y hará que el registro DE apunte
al inicio de éste. La rutina, por tanto,
sabrá dónde está la cadena gracias a
DE.
Lo anterior está referido al uso de
"DUMP" desde el BASIC, siendo impo-
sible su empleo bajo el MXSDOS.
Ahora bien, unas pequeñas modifi-
caciones bastan para construir un
"DUMP" utilizable desde el MSXDOS.
En primer lugar hay que cambiar la
dirección de origen (SfHCOOO, en el
caso del BASIC) y fijarla en 6PH100. El
hecho de compilar la rutina a partir de
la posición SPH100 no es casual, puesto
que se trata del inicio de la TPA (Tran-
sient Program Area). Esta zona es la
que contiene los programas que corren
bajo el MSXDOS (y bajo el CP/M). Cuan-
do el MSXDOS carga un programa en
la memoria lo ejecuta saltando a la po-
sición fifHIOO, así que todos ellos han
de estar diseñados para correr a partir
de esta dirección.
El segundo cambio es suprimir la ru-
tina que toma el nombre y lo transfor-
ma en un PCB válido (MAKEPCB),
puesto que el procesador de comandos
(C0MMAND.COM) toma el parámetro
(el nombre del fichero) que acompaña
al comando DUMP, construye con él un
PCB utilizable y lo coloca en la posición
6PH5C. Huelga decir que desde el DOS
los ficheros ejecutables han de llevar la
extensión "COM", así que para utilizar
a "DUMP" deberemos llamarlo
"DUMP.COM".
Luego de efectuar las modificaciones
descritas y de compilar el código en un
fichero llamado "DUMP.COMP", podre-
mos emplear la rutina haciendo:
A>DUMP Nombre
El MSXDOS comprueba si hay un
identlficador de unidad de disco, por
tanto valen expresiones como:
A>DUMP B: Nombre
La rutina hace llamadas a funciones
del DOS para escribir los caracteres en
la pantalla, así que el sistema operati-
vo comprobará constantemente si se
aborta el programa, con CTRL-C, o si se
hace una pausa, con CTRL-S (la tecla
STOP no sirve). Hay que prestar una
atención particular a no pulsar por
descuido CTRL-P, porque ello conectará
el eco de la impresora y bloqueará el
programa hasta que ésta se halle en lí-
nea.
Resta comentar que hay dos carga-
dores de líneas DATA El primero que
construye "DUMP.BIN", para usar la
rutina desde el BASIC, y el segundo que
crea "DUMP.COM", para emplearla
bajo el MSXDOS. El listado fuente de la
versión MSXDOS. El listado fuente de
la versión MSXDOS no aparece, por
cuestiones de espacio, pero puede ob-
tenerse teniendo en cuenta las peque-
ñas modificaciones ya dichas.
Nótese también que "DUMP.COM" es
escrito a partir de la apertura de un fi-
chero secuencia!, para evitar que el in-
térprete coloque la cabecera típica de
los ficheros grabados con BSAVE.y que
contiene un prefijo y las direcciones de
inicio, final y ejecución.
Las aplicaciones de "DUMP" pueden
ser de las más variadas. Particular-
mente lo empleo con frecuencia, a fin
de tener una idea del contenido de un
fichero olvidado, estudiar los mensajes
de error de un programa comercial que
no hace lo que deseo (y sacar conclu-
siones de ellos) o mirar de qué forma
un determinado programa comprime
las pantallas (para poder descompri-
mirlas); por citar sólo dos ejemplos.
Espero que vosotros mismos descu-
bráis otros usos de DUMP y os animéis
a escribir pequeñas utilidades. Me atre-
vo a sugerir que construyáis un
"TYPE" que no pare al encontrar un có-
digo de final de fichero (SPH1A), un co-
mando "DHl" que muestre los ficheros
por orden de antigüedad, un "COPY"
que emplee la RAM DE Vídeo de los
MSX-2 para reducir los cambios de dis-
cos o un "COPY" que salve sólo los fi-
cheros que han sido modificados (igual
que el comando BACKUP, del MS/DOS).
y completa batalla
espacial
Nombre y Apellidos:
Dirección:
I
I Población: CP.
Provincia:
I □ Deseo recibir:
l
| El importe de mi pedido lo hago efec-
. tivo mediante:
I □ Cheque adjunto a nombre de: •
i MANHATTAN TRANSFER, S A.
1 C/RocayBatlle, 10-12, bajos.
I 08023 Barcelona
SPIRITS
TOPO soft
Formato: Caas
stte, MSX-I
Controles: Tec
ladoyjoystick
os relámpagos rasgaban la noche y la
l^lluvia azotaba incansablemente el
«■«rostro de Wheete, el cual, vagando por
las llanuras, desesperaba ya de encontrar
un cobijo. Pero un relámpago estalló delan-
te suyo, iluminando un maltrecho castillo.
Le pareció distinguir unos ojos mirándole
por una ventana; pero el hecho de poder
resguardarse de la lluvia le llevó a Damar a
la puerta del castillo. Tras una larga espera,
comprobó desesperado que el castillo no es-
taba habitado y la puerta bien cerrada. Se
dio la vuelta con el objeto de marcharse
cuando oyó el ruido de una puerta al abrir-
se. Con paso inseguro se adentró en el cas-
tillo, débilmente iluminado. Como ya se es-
peraba, la puerta se cerró a sus espaldas
con un golpe sordo. Temeroso, comenzó a
ca m i n ar cuando sus pies toparon con un
objeto ligero y plano. Se agachó y recogió el
objeto, lo reconoció rápidamente, era un pa-
pel. Y con letra femenina, se leía lo siguien-
te: «Por favor, quien sea que haya recogido
esta carta, ayúdeme. Estoy prisionera en
este castillo maldito desde hace ya meses.
Algunos valientes caballeros han intentado
rescatarme y prefiero no describir el final
que tuvieron Existe una armadura que está
hechizada y camina por los dos castillos
(ignoro por cual de los dos habrá usted en-
trada; pero ambos castillos están comuni-
cados). Es imprescindible deshechizar a
esta armadura, con lo cual podremos debi-
litar al señor del castillo, que por una anti-
gua maldición ha adoptado la forma de un
águila. Odia a muerte a todos los seres hu-
manos, de manera que usted no podrá salir
del castillo mientras él viva. A mí me en-
contrará vagando por las habitaciones de
uno de los dos castillos. Por favor, rescáte-
me...»
Wheete entrecerró los ojos, se ajustó la
capucha de manera que su rostro perma-
neciese en las sombras, y conjurando a un
poderoso espíritu que le debía un favor, lo-
gró cerrar un trato mediante el cual el es-
píritu le resucitaría cada vez que pereciese
en manos de los malvados habitantes del
castillo. Pero el espíritu sólo ofreció resu-
citarle 3 veces. Una vez hecho esto, se pre-
paró para la aventura y comenzó a explorar
la primera habitación...
Tu personaje es un misterioso encapu-
chado, que guarda su rostro en las sombras,
excepto la nariz, que, debido a su descomu-
nal tamaño, no se puede esconder tan fácil-
mente. Puede desplazarse hacia las cuatro
direcciones, agacharse, saltar, disparar
conjuros paralizadores y coger objetos.
Los enemigos son bastante diversos y da-
por Ronald Van Ctinkel, Sascha Ylla-Konneke,
Javier Guerrero, Htrofumi Kuraoka, Willy MlragaU
para lo cual tendremos que coger el libro,
con el que deshechizaremos a la armadura.
Después nos haremos con la varita para de-
sencadenar a la princesa, y una vez hecho
esto, sólo falta encontrar al águila.
Los gráficos son bastante buenos. Lamen-
tablemente no se utilizan los sprites a la
hora de representar a los personajes, pro-
vocando así que toda la zona que rodea al
personaje se vuelva del mismo color que
este último, lo cual desmerece bastante al
programa.
ñiños, los jorobados, fantasmas, hombres
lobo y enanos son hechizables (los puedes
paralizar por un tiempo), pero existen
otros enemigos que bien por ser demasiado
bajos (el gato) o por ser espontáneos (de-
monios arqueros) no pueden ser hechiza-
dos.
El contacto con nuestros enemigos nos
restará energía, y cuando esta se acabe, nos
restará una vida. Lanzar un hechizo tam-
bién nos resta energía, de manera que hay
que procurar racionarlos.
El contexto por el que transcurre el juego
es un castillo, plagado de trampas (lámpa-
ras que caen o calderos hirviendo princi-
palmente) y de puertas que no se abrirán a
menos que accionemos la palanca adecuada,
que puede estar bastante lejos de la puerta
en cuestión. También hay escaleras para su-
bir o bajar y también agujeros en el suelo,
que como es de suponer, son sólo para bajar.
Lo que sin duda más destaca de este Juego
es el tratamiento que se le ha dado a la pan-
talla, la cual está dividida en tres zonas. La
primera es donde transcurre la acción y por
donde se desplaza el personaje, la segunda
es la que indica el número de vidas, ener-
gía..., y la tercera indica el lugar a donde te-
nemos que ir para alcanzar un objeto o per-
sonaje determinado (al principio sólo nos
indica el lugar donde se encuentra la bola
mágica, una vez cogida ésta, podremos se-
leccionar con los números 1 al 6, 1- Libro,
2- Varita mágica, 3- Princesa, 4- Armadura
y 5- Aguila, en el caso de estos tres últimos,
la ventana seguirá a los personajes por to-
das las pantallas).
El objetivo del juego es destruir al águila,
POTTUACION:
Presentación: 10
Gráficos: 7
Movimiento: 8
Música: 9
Dificultad: 9
Total: 8
Howard the Duck
Acti visión
Formato: Cassette MSX-I y MSX II
Controles: Joystick y Cursores
Precio: 880 Ptas.
;
►oward el pato estaba bailando hacía
un minuto con todos sus amigos,
►cuando de pronto estos desaparecie-
ron, y Howard se quedó solo. De repente Ho-
ward supo lo que pasaba, sus amigos esta-
ban en la isla de Vulcano y el oscuro Over-
lord los había raptado. Inmediatamente se
puso en camino, compró un billete de avión
y cuando éste sobrepasaba la isla se lanzó
en paracaídas dispuesto a acabar con el os-
curo Overlord y rescatar a sus amigos.
Como habréis podido comprobar, el Juego
no tiene que ver nada con la película del
mismo nombre. En el Juego manejamos a
un pato y tenemos que rescatar a nuestros
amigos.
El Juego comienza cuando ponemos los
=
"f-
pies en la isla, después del viaje en paracaí-
das. Durante la estancia en la isla Vulcano,
necesitaremos un equipo completo para po-
der acceder a los lugares difíciles, estos son:
— Un Jet solar, que te ayudará a cruzar el
canal que hay en la isla.
—Un ultraligero que necesitaras para ac-
ceder a la cima del volcan de la isla
—Un desintegrador de neutrones portátil
con el que te enfrentarás al oscuro Overlord
Lo primero que tendrás que hacer des-
pués de coger el equipo es dirigirte al canal,
y situarte en la orilla, automáticamente se
activará el jet solar y podrás remontar el
canal. Cuando llegues a la otra orilla co-
menzarán a atacarte los maniacos imitan-
tes, seres que viven bajo tierra y que tendrás
que liquidar a base de patadas y puñetazos.
La operación de remontar el canal y reco-
rrer nadando la isla, se tendrá que repetir
varias veces hasta que llegues a un puente
tras el cual acaba la primera fase del Juego.
La segunda la comenzamos volando con el
ultraligero hasta la boca del volcán, una vez
dentro estarás en la guarida del oscuro
Overlord donde tendrás que esquivar las es-
talactitas que caen del techo y los agujeros
que aparecen en el suelo. Para colmo ten-
drás que procurar que no te acierten los dis-
paros de energía que te lanzará el oscuro
Overlord
Si después de todo lo sufrido aún estás
vivo, te faltará por realizar la última parte
del Juego, matar al oscuro Overlord con tu
desintegrador de neutrones. Si estás situado
en la posición correcta podrás disparar
contra él, y acertándole varias veces lo ma-
tarás rescatando así a tus amigos. Pero
¡atención!, aún no ha acabado ahí la misión,
desde el comienzo del Juego Overlord astu-
tamente te había dado un plazo de tiempo
para intentar salvar a tus amigos, y había
provocado la erupción del volcán, con su
muerte no has conseguido que ésta se de-
tenga y si no lo haces tú el volcán explotará.
Para ello tendrás que dirigirte a una palan-
ca, que moviéndola os salvará a todos de
una muerte segura. Sólo así habrás con-
cluido con éxito tu misión.
Antes de comenzar el Juego, dispones de
la opción de elegir entre cuatro niveles de
dificultad: novato, intermedio, avanzado y
experto. Si eliges el primero tu aventura
acabará cuando cruces el puente y te entre-
garán la medalla de novato o aprendiz res-
pecto al tiempo empleado. Si has elegido la
opción segunda terminarás en la cima del
volcán y te será entregada la medalla dis-
tinguida o de teniente, y los que elijan el ni-
vel avanzado o experto y maten a Overlord
les serán entregadas las medallas de co-
mandante o capitán (avanzado) y commo-
dore o almirante (experto). Hay que decir
que en las opciones de avanzada y experta
a la hora de remontar el canal es agobiante,
desesperante y extraordinariamente difícil,
teniendo que rendirse ante su dificultad.
Howard the Duck es un juego adictivo,
animado con unos buenos gráficos, ricos en
colorido y un movimiento bien conseguido.
Además también está disponible para
MSXII.
PU1ÍTUACI0N: ^sentación: 9
Gráficos: 8
Música: 7
Adicción: 9
Movimiento: 8
Dificultad: 9
Fernando Martín
Basket Master
Hacía mucho tiempo que los usuarios
de ordenadores MSX pedían a gritos
algún Juego dedicado a este espec-
tacular deporte como es el baloncesto. Di-
namlc fue, al fin, la que se decidió a reali-
zarlo, y lo hizo de una manera bastante ori-
ginal, como es llevando a nuestras panta-
llas a un Jugador tan conocido como Fer-
nando Martín. En el juego no tendréis que
enfrentaros un equipo contra otro, sino que
jugaréis tú y él solos, esto sin duda beneficia
la maniobrabilidad del jugador, y elimina
los posibles líos de control con que te po-
drías encontrar si Jugara un equipo com-
pleto contra otro. La pantalla está ocupada
por todo el campo de Juego, cada Jugador,
como es obvio, defiende su canasta e intenta
encestar en la contraria. Y como si de un
partido real se tratara podrás lanzar tiros
de tres puntos, robarle balones a tu contrin-
cante, tirar normal o de gancho, realizar ta-
pones, hacer dobles, fueras, campo atrás y
conseguir ocho tiros de mate que se ejecu-
tan de modo automático según nuestra po-
sición bajo la canasta, estos son:
— De frente a dos manos.
— De espaldas con las dos manos.
— De lado con la mano derecha a estilo
gancho.
— De lado con la mano izquierda a estilo
gancho.
— De frente a dos manos y giro en el aire.
— De espaldas a dos manos y giro.
— De lado con mano derecha a estilo gan-
cho y giro en el aire.
— De lado con la mano izquierda a estilo
gancho y giro en el aire.
Bajo el campo de juego están situados los
marcadores individuales que nos indican el
estado de fuerza de los Jugadores, el número
de untos que ha conseguido cada uno, y la
falta que ha cometido (personal, dobles...).
Hay otro indicador que marca el tiempo que
resta para la finalización del partido. En
cuanto a los gráficos de este juego cabe decir
que la cancha y las canastas están bien rea-
lizadas, pero los espectadores de las gradas
son bastante chapuceros. Aparte de esto, los
programadores no se han molestado mucho
con dar a los jugadores un aspecto depor-
tivo y real, ya que les han plantado una ca-
beza demasiado grande y un cuerpo muy
corto y comprimido. Tampoco se han mo-
lestado en darles una silueta diferente, ya
que aparte de la cabeza el resto del cuerpo
es el mismo en los Jugadores.
El Juego en general, es aceptable, pero ex-
cesivamente difícil, ya que Fernando Martín
tiene más experiencia que nosotros, se can-
sa menos, comete menos fallos, y para col-
mo es muy difícil (por no decir imposible)
hacerle una jugada y dejarlo atrás. No obs-
tante existe un truco que nos permitirá me-
ningún problema Cuando él Snga^péloS
dirigirnos a su canasta y saltar, entonces la
pelota aparecerá en nuestras manos y se in-
troducirá directamente en la canasta su-
mándonos dos puntos.
Hay que elogiar al gráfico de presentación
que surge al cargar el Juego, es magnífico.
Aparece Fernando Martín apoyado en una
pierna, dando vueltas con un dedo a la pe-
lota y ofreciéndonos una de sus mejores
sonrisas.
PUNTUACION
Presentación: 9
Gráficos: 7
Gráficos: 7
Música: 9
Adicción: 6
Movimiento: 6
Dificultad: 9
Total: 8
V 1
Éssel
Traite ■
1
m
ZANAC
PONYCA
Formato: Cassette MSX 1/2
Controles: Joystick/teclado
He aqui un juego muy adlctivo, en el
que la música contribuye positiva-
mente a esta «adicción».
A este juego se le puede atribuir bien el
nombre de «matamarcianos», ya que nues-
tra misión es la de matar marcianos, ojos y
otros muchos seres y naves que intentarán
por todos los medios restarnos una y otra
vez vidas para así tener que dejar de jugar.
En este juego hay que destacar el disparo
de nuestra nave, ya que lo podemos mejorar
recogiendo unas bolitas. También existen
mas ayudas, lo que viene siendo habitual en
los nuevos Juegos, como por ejemplo vidas
extra, pasadizos secretos a los siguientes
«rounds», ayuda en el disparo (aparte de la
ya mencionada) y varios escudos diferentes.
Como en todos los juegos de arcade aqui
también tenemos que ir sumando puntos y
pasar obstáculos. Los obstáculos son muy
diversos aunque la mayoría son meteoritos,
naves enemigas (de todas las formas y co-
lores), cohetes, marcianos en general y
unos ojos a los que odiaréis ya que sólo si
los matáis podréis seguir Jugando —sobre-
volando las tierras enemigas — lo que sin
duda os costará mucho.
Lamentablemente los programadores no
quisieron hacer casi perfecto este Juego ya
que la parte gráfica — los lugares que sobre-
volamos — es muy pobre y repetitiva. Siendo
la presentación, la música en sí y el resto
del juego (con la excepción de los gráficos)
muy buenos, tenemos que mencionar que se
trata de un Arcade muy difícil en el que hay
que dominar y saber todos los trucos y ayu-
das* que nos ofrece el juego, para conseguir
una puntuación buena.
Este juego sin duda pondrá a prueba los
reflejos de los más hábiles, haciéndoles pa-
sar así buenos o malos ratos...
PUNTUACION:
Presentación: 10
Gráficos: 5
Música: 9
Adicción: 9
Movimiento: 8
Dificultad: 9
Total: 8
SPLASH
MIND GAMES ESPAÑA
Formato: Cartucho y cassette 64K MSX I
Controles: Cursores y joysück
Parece ser que los juegos tipo Arcade se
están volviendo a poner de moda y no
es para menos, ya que son los que lo-
gran que pasemos más horas delante de
nuestra máquina, debido a sus altos índices
de adicción y entretenimiento. Este es el
caso de Splash, un Arcade tipleo i
maría la atención si no fuera por ,
originalidad.
La acción se desarrolla en una instala-
ción de tuberías, separadas por unos grifos
cerrados impidiendo el paso del agua. Como
es natural, nuestra misión consistirá en
abrirlos todos y, de esta forma, el agua po-
drá circular tranquilamente por las tube-
rías hasta desembocar en un gran barril
cuya capacidad es de mil litros. Cuando este
barril esté lleno, habremos conseguido pa-
sar la primera pantalla y tendremos que ha-
cer lo mismo en la siguiente, en la otra, etc...
Pero como no sabemos nada de grifos, ne-
cesitaremos la ayuda de un profesional de
la materia, el fontanero, al cual tendremos
que guiar por las tuberías hasta los grifos
cerrados y éste nos los abrirá.
Hasta aquí todo parece fácil. Quizás el
único problema radica en guiar al fontane-
ro que es algo despistado y se suele quedar
atrás. Pero dos peligrosos seres se arras-
tran por las instalaciones y al menor des-
cuido que tengamos nos empujarán y nos
harán caer a trompicones por las tuberías,
estos son: una araña y un ratón. El más fá-
cil de esquivar es la araña, de movimientos
lentos y pesados; pero eludir al ratón es di-
ficilísimo. Sus movimientos son rápidos e
inesperados no dándote tiempo a reaccio-
nar. La única forma de darte un respiro es
tirarle a la cabeza una llave inglesa, y aun-
que no lograremos eliminarle sí consegui-
remos aturdirlo durante un rato, tiempo su-
ficiente para abrir algún grifo.
Pero el picaro ratón no sólo estorbará
nuestro camino e intentará empujarnos,
sino que también cerrará los grifos abier-
tos, teniendo que doblar así nuestro esfuer-
zo.
El juego en general está bien realizado,
sobre todo por su originalidad y adicción.
Está animado por unos gráficos apropiados
para su estilo y unos sprites grandes y bien
conseguidos. En definitiva, un juego nuevo
que gustará a los pequeños de la casa y sor-
Presentación: B
Gráficos: 7
Movimiento: 7
Música: 8
Adicción: 9
Dificultad: 8
Total: 7
GLASS
MIND GAMES
Formato: Cassette, MSX-I
Controles: Cursor y joysück
«S
|e busca tripulante experimenta-
ndo para formar parte de la tri-
'pulación de la nave espacial AN-
DROMEDA V. Aspirantes presóntensen en
las oficinas de VIAJES A GO GO, SA.»
¿Te apetece formar parte de esta nave es-
pacial? Si es así, intenta pasar las pruebas
de admisión con la mejor puntuación posi-
ble para lograr un buen puesto en la nave y
asegurarte un buen sueldo. Pero ten cuida-
do, los aspirantes son muchos y las pruebas
exigen nervios de acero y una mente que
tome decisiones en milésimas de segundo.
Estas son las pruebas:
1 — Destruye a las naves que intentarán
colisionar con tu scanner continuamente.
2 — Desplaza tu scanner procurando des-
truir a todos los enemigos que te aparece-
rán por los lados, esquivando a la vez las ba-
las que ellos te disparen.
3— Destruye a las naves que irán apa-
reciendo poco a poco por el horizonte, tie-
nes que hacerlo rápidamente, antes de que
te disparen.
4— Esta fase es de Bonus, controlas a un
pequeño cuadradito, con el cual tienes que
apuntar a los radares y a los trenes de ate-
rrizaje de las naves que aparecen por la de-
.recha de la pantalla.
5 — En esta prueba debes controlar tu
nave intentando esquivar los obstáculos
que aparecen por pantalla.
Estas pruebas no deben aparecen nece-
sariamente en este orden, sino que a medida
que vayas pasándolas, aparecerá una que ya
hayas pasado; pero con distintos gráficos o
mayor dificultad.
La pantalla representa el tablero de man-
dos de una nave, en el cual están represen-
tados el .tiempo que te resta en cada prueba,
la energía que te queda y el número de vidas.
En la parte de arriba hay una ventana en la
cual aparecerán los enemigos, obstáculos,
etc.
Los controles son derecha e izquierda
para mover la nave a uno u otro lado, y dis-
paro para disparar el láser, que saldrá en
forma de dos rayos que se paran en el cen-
tro de la pantalla, lugar donde habrá que si-
tuar a los enemigos antes de disparar.
La nave se desplaza por una especie de
pista de hielo, sobre la cual aparecerán los
enemigos, reflejándose en el hielo.
En la pantalla de obstáculos, hay que mo-
verse intentando no chocar de frente con un
obstáculo, ya que cada choque resta una
cierta cantidad de energía, y en un choque
de frente se pierde casi una vida.
PUNTUACION:
Presentación: 8
Gráficos: 8
Movimiento: 6
Adicción: 6
Música: 6
Dificultad: 8
Total: 7
UCHI-MATA
MARTE CH
Formato: Cassette 64K. MSX I
Controles: Cursores y Joystlck
Precio:
Uchl-Mata es otro de los muchos si-
muladores de artes marciales que
están disponibles en el mercado
MSX. Lo que diferencia a éste de los restan-
tes es que es el primero que está dedicado al
Judo, antiguo arte japonés de combate sin
armas. En la mayoría de los otros juegos de-
dicados a las artes marciales, el protagonis-
ta o el contrincante se defendía o atacaba
con algún tipo de arma, como paios, espa-
das, cadenas, bolas de fuego..., pero lo que di-
ferencia a éste es que las peleas son cuerpo
a cuerpo, no podemos dar patadas ni pu-
ñetazos, nuestra misión consiste única-
mente en agarrar y tirar al oponente.
Este juego, como muchos otros, nos per-
mite las posibilidades de pelear contra otro
Jugador, contra el ordenador y también ha-
cer prácticas contra un oponente que no
responde a nuestros ataques. Esta última
opción es muy importante, ya que nos per-
mite entrenar las llaves para la pelea, que
son de muy complicados movimientos.
Conforme vayamos derrotando a nues-
tros contrincantes irán apareciendo otros
con mayor experiencia que intentarán eli-
minarnos. Durante el desarrollo de la pelea
estaremos bajo los atentos ojos de un juez
que dará su puntuación a cada Jugador des-
pués de que halla caído al suelo alguno de
ellos. Además también se nos mostrará la
posición de los pies en el momento en que
se vaya a hacer la llave, y el aguante o fuer-
za de cada Jugador.
El Juego ha sido diseñado bajo el aseso-
ramiento de uno de los mejores luchadores
de judo del mundo. Es un juego muy com-
pleto y da una buena sensación de realidad.
Acompañado de unos gráficos apropiados y
un movimiento bastante real pero mejora-
ble, «Uchi-Mata» es un juego original y
aceptable, que a buen seguro os gustará a
todos, después de haber superado su difícil
manejo.
Cabe mencionar la cantidad de llaves que
puedes hacer a tu oponente durante el com-
bate, más de ocho en todas direcciones. El
combate lo vencerá el jugador que reúna el
mayor número de puntos, pero también
puede ser ganado antes de que terminen los
dos minutos de tiempo, por medio de una
llave mortífera que te lanzará por los aires
y te dejará K.O. El nombre de esta llave es
el mismo que el del Juego, «Uchi-Mata».
PUNTUACION:
Presentación: 8
Gráficos: 7
Sonidos: 7
Adicción: 8
Movimiento: 6
Dificultad: 8
Total: 7
YA ESTA A LA
VENTA ELE 7
DE
o3
tí
ce
CQ
O
SPEED KING
Mastertronic
Formato: Cassette, MSX-I
Controles: Cursores y Joystick
Speed King es un Juego en el que ten-
dremos que demostrar nuestras cua-
lidades como piloto de motos de gran
cilindrada. Recorreremos los mejores cir-
cuitos del mundo y competiremos procu-
rando conseguir la mejor posición y bus-
cando hacer la vuelta más rápida al circui-
to.
En la parrilla de salida habrán veinte mo-
tos delante tuyo, a las que tendrás que ade-
lantar procurando no chocar con ellas ni
salirte de la calzada, ya que acabarás por los
suelos y perderás a los demás püotos (los
cuales nunca se caen ni tropiezan los unos
con los otros). Pero tu moto es más rápida
que las demás, consta de seis velocidades y
puede alcanzar en recta hasta los 250 km/
h, con lo que si te arriesgas tomando las
curvas en quinta o sexta marcha podrás al-
canzar a los restantes pilotos sin muchos
problemas. Pero hay que tener en cuenta
que existen dos tipos de curvas, las nor-
males que las puedes pesar a altas veloci-
dades y las cerradas y peligrosas, en las que
se tiene que reducir considerablemente la
velocidad y tomarlas con cuidado. Pero si
además os encontráis con una de estas cur-
vas en medio de la cadena de motos, es bas-
tante probable que terminéis por los suelos.
El juego en general es bastante completo,
pudiendo elegir muy variadas opciones. Po-
drás elegir entre diez famosos circuitos del
mundo (San Marino, Italia, Silverstone,
Paul Ricard...) entre tres niveles de dificul-
tad, el número de vueltas, en recorrer el cir-
cuito visualmente para comprobar su difi-
cultad, y en practicar tú solo en el circuito
que elijas.
que no se ve más que el circuito y ningún
decorado a los alrededores. Por otra parte
los gráficos de las motos y los bordes de la
carretera no están hechos punto por punto,
sino que más bien parecen hechos en
screen 3. El movimiento
bien conseguido dando
ción de realidad.
Cabe decir que es un juego bastante adic-
tivo y original, el primero que trata el tema
de las motos para MSX, pero que si los pro-
gramadores se hubieran molestado en me-
jorar los gráficos sin duda hubiera sido un
excelente juego.
competiciones y con ello también faltan los
himnos nacionales. Después de no haber
podido elegir tu país, sí puedes elegir entre
estas diferentes opciones:
1 — compete in all events
2 — compete in some events
3— compete in one event
4— practico one event
5— seleét nu
Tras elegir la opción de competir tendre-
mos que introducir nuestro nombre.
Otra cosa que hay que mencionar es que
en esta adaptación faltan muchos «events»,
con lo que el juego pierde bastantes alicien-
tes cosa que no ocurre en la versión de Com-
modore y se hace muy corto y hasta mo-
nótono si se juega mucho.
Para los usuarios de MSX quedan estas
competiciones:
1— Hot dog
2 — Speed skating
3 — Ski jump
con lo que faltan:
— Figure Skating
— Free £
PUNTUACION:
Presentación: 6
Gráficos: 5
Música: 7
Adicción: 8
Movimiento: 7
Dificultad: 8
Total: 7
WINTER GAMES
BPYX
Controles: Teclado o joystick
Formato: Cassette MSX1
*
_
Seguro que casi todos los amantes de
los videojuegos han oído hablar de
este soft de «juegos olímpicos de in-
vierno». Ahora nos llega la versión para
MSX, pero lamentablemente esta versión
deja algo que desear si se la compara con la
de otras máquinas.
En primer lugar echamos en falta el po-
der elegir el país al que representas en estas
Después de cada «event» nos es mostrado
el ganador y la calificación de los otros ju-
gadores, recibiendo los 3 primeros una me-
dalla. Las medallas dan puntos y el que tiene
al final más puntos es el vencedor de estos
emocionantes juegos de invierno.
Quiero remarcar otra vez la poco adecua-
da adaptación para los MSX aunque esto
puede ser debido a que el juego no se va car-
gando event por event, sino, al contrario, de
un golpe. (Lo primero no habría sido pro-
blema y no defiende la versión...)
Otro defecto en la versión MSX es que en
las instrucciones vienen descritas todas las
competiciones o pruebas aunque, como ya
he mencionado, no se puedan jugar todas.
Si queréis oír unas pequeñas melodías
sólo tenéis que esperar un poco antes de
competir, o sea cuando salga la pantalla del
event esperar unos segundos.
Presentación: 4
Gráficos: 9
Música: 7
Adicción: 8
Movimiento: 8
Dificultad: 7
Total: 7
NUMEROS ATRASADOS • NUMEROS ATRASADOS
MSX 34, 225PTAS.
MSX 35 275 PTAS.
¡LA 1. a REVISTA DE MSX DE ESPAÑA!
PARA QUE NO TE QUEDES CON LA COLECCION INCOMPLETA SOLO TIENES QUE ENVIAR HOY
MISMO EL BOLETIN DE PEDIDO CON TUS DATOS PERSONALES A «SUPER JUEGOS EXTRA MSX»
-DPTO. SUSCRIPCIONES C/. Roca i Batlle, 10-12, 08023 Barcelona.
— — BOLETIN DE:
r
Deseo recibir los números
de SUPERJUEGOS EXTRA I
para lo cual adjunto talón del Banco
Nombre y apellidos
Dirección
n. c
a la orden de Manhattan Transfer, S A
Tel.:
^Población DP.
Ppqv ' ,r, ° 86 admite contrarreembolso»
SONIMAG 87: LA GRAN FERIA DE
LA IMAGEN Y EL SONIDO
Pese a que aparentemente tengan poca
relación con nuestra publicación,
queremos resaltar las principales no-
vedades que encontramos en esta edición de
la Feria Internacional del Sonido y de la
Imagen (80NIMAG).
Esta edición de SONIMAG ha sido espe-
cialmente interesante ya que representa el
28 aniversario de este escaparate para la
electrónica más actual.
Hay que destacar la nutrida presencia de
empresas relacionadas con el estándar
M8X, que por primera vez han conseguido
que éste tenga un papel relevante en esta fe-
ria (hasta ahora acaparado por multinacio-
nales como AM8TRAD).
En el campo informático hay que destacar
la aparición del AMSTRAD P-1640, un com-
patible PC que incorpora, como opción más
destacable unos gráficos en color de Upo
EGA. EGA (Enhanced Graphics Adapter) es
un dispositivo que permite que los compa-
tibles PC puedan funcionar con una reso-
lución gráfica similar a la de los MSX de se-
gunda generación.
Esta característica hace que este ordena-
dor se convierte en uno de los más deseables
en el difícil mercado PC. Su precio, aun en
la línea AMSTRAD de bajo coste, se eleva
por encima de las 200.000 pesetas.
Por este y otros motivos no constituirá un
rival Importante para los MSX de segunda
generación, que además de su excelente re-
solución incorporan memoria de VRAM se-
parada y comandos de diseño y 8CR0LL por
hardware, aparte de la utilización de spri-
tes. Queremos remarcar, por tanto, que pese
a su excelente calidad de imagen, no deben
temer nada los usuarios de MSX-2.
También dentro del apartado informático
de la feria, encontramos dos interesantes
novedades, que en realidad no son tales.
La primera de ellas es la aparición de dos
nuevos modelos de la conocida firma Com-
modore. Se trata de AMIGA 600 y AMIGA
2000. Estos ordenadores son, sin duda al-
guna, los mejores ordenadores domésticos
existentes en la actualidad Commodore,
hace ya un par de años, lanzó al mercado un
revolucionario ordenador, AMIGA, que no
tuvo prácticamente ninguna aceptación de-
bido a su carencia total de software.
Ahora Commodore vuelve al ataque, y
aparentemente con el mismo inconvenien-
te, la falta de software. Este problema, de-
bido a su total incompatibilidad con todos
los sis temas actuales es probablemente el
handicap que deberá resolver Commodore
si quiere que sus productos tengan acepta-
ción. Veremos qué novedades nos depara en
el futuro.
También ATARI relanza una nueva ver-
sión de su modelo 820-ST. El ATARI 1040-
ST no se queda, corto en prestaciones si lo
comparamos con AMIGA (aunque sea algo
inferior en velocidad y prestaciones); pero
tiene su mismo inconveniente, la total in-
compatibilidad y el escaso software desa-
rrollado. Como en el caso de AMIGA, y su
anterior modelo, ATARI 620-ST pasó prác-
ticamente desapercibido en nuestro mer-
cado.
Saliendo del mundo informático encon-
tramos otras novedades de interés en esta
edición de SONIMAG. Tal vez la más espec-
tacular sea la presentación, por parte de
SONY, del DAT (Digital Audio Tape) que
consigue conjuntar la tecnología digital del
Compact Di8c con la posibilidad de graba-
ción y reproducción, por tratarse de una
cinta magnética.
Este producto empezará a comercializar-
se en breve en Alemania, y su implantación
en España se retrasará hasta observar los
resultados obtenidos en ese país europeo.
Por el momento su precio será algo elevado,
calculándose éste alrededor de las 250.000
ptas.
También por parte de SONY una implan-
tación decisiva, ya que por primera vez se
comercializa en España un sistema integra-
do que compagina el VIDEO-DISCO, y la más
avanzada tecnología informática. Este sis-
tema integrado permite la realización de se-
siones interactivas con el VIDEO-DISCO, ob-
teniéndose una respuesta instantánea con
sólo pulsar una zona de la pantalla. Gracias
a esta tecnología, se consigue que un orde-
nador dé una información totalmente per-
sonalizada, conjuntando Imagen de vídeo
con imagen de ordenador.
Por último comentar la aparición del ví-
deo de alta definición, que pese a estar ex-
puesto en la feria, no se comercializará por
el momento en nuestro país debido a la uti-
lización del sistema PAL, al cual no está to-
davía acondicionado dicho aparato.
Estas son las novedades más espectacu-
lares; pero SONIMAG-87 se ha caracteriza-
do por la presentación de un verdadero to-
rrente de éstas, en todos los campos: vídeo
profesional, música, informática, etc.
MCP-4026 EL
MONITOR IDEAL
Elbe, mediante su sección de microsis-
temas, presentó recientemente un
nuevo y excelente monitor compati-
ble con todo tipo de computador personal
con salida compuesta o sistema de video-
cassette y video disco. Su conexionado no
puede ser más sencillo, mediante conector
tipo Jack. Opclonalmente, el monitor mo-
delo MCP 4026 puede equipar un altavoz de
audio. Integra un tubo de rayos catódicos
tipo Tv de 14 pulgadas, con un ángulo de de-
flexión de 90 grados, siendo el diámetro del
cuello de 29,1 mm.
Dispone de entrada de señal de vídeo com-
puesta sistema PAL. Entrada de señal de los
datos de 1,0 Vpp. La impedancia de entrada
de la señal de vídeo es la usual de 18 ohmios.
El barrido es de 16,628 Khz de frecuencia
horizontal v de 50 Hz de frecuencia vertical.
Posee controles exteriores de volumen y
brillo en el frontis, interruptor, color, con-
traste, centrado vertical, horizontal y con-
mutador selector de señales de entrada en
parte trasera.
Otras características técnicas son:
Vídeo, amplificación lineal, resolución
horizontal en el centro de 260 líneas. Area
de Visualización recomendable de 240 mmi
145 mm. Caracteres de 8x8 puntos.
Potencia de salida de audlo: 1,2 W.
Entrada de red: 220 V CA ± 10 %.
Consumo: 75 W
Condiciones de funcionamiento: tempe-
ratura, desde a 40 grados centígrados.
Humedad desde el 20 % hasta el 80 %.
Para mas información dirigirse a ELBE
Microsystems. C/ Moyanes, 19-27, 08014
Barcelona. Tal: 421 11 11.
¿sen
ASCII CORPORATION
FRMTK
BERBERICH
AFIRMA: «No
habrá MSX 3»
El pasado día 29 de septiembre, duran-
te la vigesimoquinta edición de 8o-
nimag nuestra Directora Ejecutiva,
Birgitta Sandberg Junto con Javier Guerre-
ro y Wüly Miragall celebraron una amigable
comida con Prank Berberich, Director de la
Sección Internacional de ASCII CORPORA-
TION/División MSX, en el transcurso de la
cual se abordaron temas que seguro que in-
teresarán a nuestros lectores.
En primer lugar, interrogado acerca de la
noticia que ha publicado INPUT MSX sobre
los MSX 3, en la cual se afirmaba que estos
nuevos MSX estarían basados en el micro-
procesador INTEL 80386 (que incorporan
los nuevos equipos de IBM) se mostró mas
que asombrado con semejante que desmin-
tió categóricamente.
Es decir, es absolutamente falso que la
próxima generación de MSX esté basada en
el microprocesador anunciado por INPUT,
lo cual demuestra su exuberante capacidad
imaginativa y el poco rigor de sus fuentes
de información. Señores de INPUT: Los bu-
los a todo color también son bulos.
La próxima generación de MSX, que está
en la última fase de su desarrollo, no se lla-
mará MSX 3. En esta nueva generación
existirán simultáneamente máquinas muy
diversas, como serán el MSX-E, destinado a
la enseñanza; el MSX-G, pensado para los
Juegos, etc. De todos modos, tan pronto
como recibamos información al respecto de
ASCII nuestros lectores serán los primeros
en enterarse (como siempre).
Así pues estos nuevos MSX estarán ba-
sados — al igual que sus antecesores — en el
Z80, aunque se añadirán coprocesadores es-
pecíficos para gráficos, sonido, etc. con lo
que se optimizarán el rendimiento y la ve-
locidad.
Mr. Berberich se mostró muy interesado
en mantenerse en contacto permanente con
nuestras publicaciones, las únicas que me-
recen su entera confianza que circulan re-
gularmente en ASCII Japón, e incluso se
mostró interesado en colaborar en ellas,
por lo que desde aquí anunciamos que pron-
to tendremos su autorizadísima firma en
Otro avance acerca de MSX es que sus
equipos ya se están utilizando regularmen-
te en entornos telemáticos en Japón y en
otros países, y que — Telefónica mediante —
pronto podrán utilizarse análogamente en
España. Ampliaremos informaciones en
próximas ediciones de nuestras revistas,
que como podéis ver son las más int
clónales de nuestro país referidas al <
dar MSX.
NUEVO SOFT
Coincidiendo con la celebración de S0-
NIMAG 87, la conocida firma PROEIN
ha lanzado tres nuevos títulos al mer-
cado MSX.
En esta ocasión, y a diferencia de lo que
ha ocurrido con otros juegos, se trata de
versiones originales para MSX, es decir, no
se trata de adaptaciones de juegos de otros
ordenadores, por lo que aprovechan en gran
medida todas las posibilidades que ofrecen
nuestros ordenadores.
Los títulos de estos nuevos Juegos son
«DEMONIA», «MAZE MAX» y «RUNNER».
MAZE MAX es un interesante Juego de
conducción, en el que debes recoger un gran
número de banderas que encontrarás en tu
camino. Una lucha por recorrer kilómetros
con el menor combustible y esquivando a to-
dos los oponentes, que intentarán dejarnos
fuera de combate en todo momento.
RUNNER, en cambio, es un Juego de aven-
turas, en que debes recoger diferentes ob-
jetos y ofrecérselos a unos personajes de-
terminados para conseguir llenar al final
del programa.
Finalmente, DEMONIA es un terrorífico
Juego, en el que debes enfrentarte a las fuer-
zas del mal que ve invadidos sus dominios
y amenazado su poder.
LO ULTIMO
DEHAL
Lo último de HAL en el mercado M8X
es un cartucho que se comercializa a
partir de ahora en España. Su nom-
bre, PLANETA MOVIL.
Este Juego, con unos excelentes gráficos y
una muy iograda animación, nos sitúa en el
interior de una nave estelar.
Debemos recorrer una interminable serle
de corredores, destruyendo a toda clase de
alienígenas, recogiendo algún que otro ob-
jeto, y localizando ascensores y puertas se-
cretas que nos conducirán a nuevos niveles
de Juego.
Para defendernos de todos estos enemigos
sólo disponemos de nuestra arma láser. Y
atención, algunos de ellos son sumamente
inteligentes, y no se dejan disparar as como
as. Un interesante Juego para ampliar vues-
tra programoteca con un nuevo título.
Pero en estos últimos tiempos HAL ha
trabajado duro, y nos sorprende con otros
dos excelentes títulos. El primero de ellos es
DUNK-SHOT, uno de los mejores Juegos de
baloncesto en MSX que, a diferencia de
otros muchos títulos, incluye el control de
varios jugadores en cada equipo.
Otro título de interés para los usuarios
del estándar es EGGERLAND, un Juego apa-
rentemente simple; pero que se complica
extremadamente en niveles superiores. Es
una perfecta combinación entre acción a In-
teligencia. Os lo recomendamos si os gusta
pensar en los juegos.
Por último decir que estos y otros juegos
de HAL son distribuidos por ZAZA Software.
ZAZA Software
C/ Loreto, 2
Tel.: 322 7 03
417 69 75
08029 BARCELONA
21
ASCII
Corporation en
España
Como ya habíamos anunciado, Mr.
Prank Berberich, director de la sec-
ción internacional de ASCII Corpora-
tion, realizó una visita a nuestro país para
estudiar y potenciar la situación actual de
los MSX en España. Esta visita, así como
otros contactos de gran interés, son el fruto
de nuestra política de relaciones internacio-
nales que nos están permitiendo acceder a
novedades en exclusiva, e informar a los im-
portadores españoles de los productos exis-
tentes en otros mercados y del nivel de
aceptación que estos tienen. Prueba de ello
son, por ejemplo, SUPER RAMBO ESPECIAL
(ya comercializado en España) y que co-
mentamos en absoluta primicia, TÜBJBO
5000, y otros programas y periféricos de los
que hablaremos más adelante.
ASCII Corporation, como ya sabrán mu-
chos de nuestros lectores, es la compañía
creadora del estándar MSX. Todas las deci-
siones de alto nivel parten de ella. Una de
las más importantes en estos momentos es
el desarrollo de una nueva generación de
MSX.
Mr. Frank Berberih visitó nuestras ins-
talaciones en SONIMAG-87, teniendo con
nosotros una intensa jornada de trabajo, en
que comentamos entre otros muchos temas
el futuro de los MSX, que mantendrán la
compatibilidad por encima de todo, los nue-
vos periféricos y programas que están sien-
do desarrollados en Japón, y la práctica se-
guridad de que los MSX serán los ordena-
dores más destacados en la olimpiada de
Seúl-88, ya que serán instalados como ter-
minales inteligentes de TELE-TEXTO, infor-
mando a atletas, periodistas, etc. de todos
los incidentes y datos relativos a tal acon-
tecimiento deportivo. Esto último demues-
tra la enorme implantación ue los MSX es-
tán teniendo en el campo de las comunica-
clones en el resto de países del mundo.
Y aún hay más, mucho más... En próxi-
mos números desarrollaremos con más de-
talles todos los temas tratados con Mr. Ber-
berich, que nos confirmaron el esperanza-
dor futuro que los MSX tienen que Jugar, en
nuestro país, y en el resto del mundo.
SPEEDKING
AUTOFIRE
ERMA presenta una nueva versión del
^^conocido joystick de KONIX, SPEED-
fc^KING. La primera versión, caracteri-
zada por su gran ergonomía (comodidad y
facilidad de uso), no se deja de fabricar, sino
que, al contrario, se suministrará a partir
de ahora con un videojuego de regalo.
i JJ
Ya lo sabéis. Por el precio de SPEEDKING
conseguiréis también un Juego de actuali-
dad, incluido en la caja con el Joystick.
Pero KONIX también ha querido crear
algo nuevo, el SPEEDKING AUTOFIRE. Gra-
cias a esto será más fácil derrotar a las in-
gentes avalanchas de alienígenas que perió-
dicamente invaden las pantallas de nues-
tros MSX. Como muchos ya sabréis, el AU-
TOFIRE consiste en un interruptor que per-
mite la repetición automática del disparo,
con lo que podemos concentrarnos única-
mente en esquivar a los diferentes enemi-
gos y dificultades que encontraremos a lo
largo de nuestros Juegos preferidos.
MAZE OP
GALIUS
Nuevo MEGA-ROM de Konami
Un castillo mágico que, en realidad,
no era sino una secreta trampa ten-
dida por el máximo mandatario del
mal, Galius.
Afrodita fue capturada por los oscuros
Hunos y tú debes rescatarla. Debes tener en
cuenta los terribles peligros que te esperan
dentro del castillo, una trampa tendida es-
perando tu aparición. Nadie consiguió salir
nunca de
KONAMI, i
senta su último MEGA-ROM para los MSX:
The Maze of Galius, que, a diferencia de
otros títulos, está preparado para funcionar
en cualquier ordenador del estándar, y no
únicamente en los MSX de segunda gene-
ración. Esperamos poder comentar en bre-
ve este interesante programa.
SERMA también nos presenta otro de los
últimos desarrollos de KONAMI. Se trata de
Q-BERT, el popular Juego de ATARI, ahora
desarrollado on unos excelentes gráficos
para los MSX.
Q-BERT debe saltar sobre los cubos de co-
lores y hacerlos girar. Si consigues alinear
cinto cubos en línea, ipremio! Y aunque la
cosa parece fácil...
Además permite que participen dos Ju-
gadores simultáneamente.
ALBUM DE
PLATINO
Software excepcional a un precio
excepcional
Sfcios productos de KONAMI en nuestro
fc^país, lanzó hace ya unos cuantos me-
ses una serie de programas en cinta en-
marcados dentro de la serie CODE MAS-
TERS.
Algunos de estos Juegos ya han sido co-
mentados en nuestra sección BIT-BIT, te-
niendo una interesante calidad todos los co-
mentados hasta el momento.
En vista del interés que ha generado esta
serie de programas de bajo precio, SERMA
acaba de anunciar el lanzamiento de su pri-
mer ALBUM DE PLATINO.
El álbum de platino no es más que una re-
copilación de cuatro títulos de la serle CODE
MASTERS, cada uno con su propia cinta, en
un estuche plateado que permite la conser-
vación de las cintas en el mismo.
Pero lo más interesante de este primer ál-
bum de platino es su precio, ya que las cua-
tro cintas, con el estuche, costarán aproxi-
madamente 2.000 ptas., precio que sitúa es-
tas cintas dentro de las más asequibles que
pueden encontrarse actualmente en nues-
tro mercado.
22
4.° GRAN
BE
CONCURSO
COMO DE COSTUMBRE... ¡PREMIAMOS LOS MEJORES PROGRAMAS!
ITRO CONCURSO ESE PROGRAMA DEL QUE TE SfflTES
BASES
1. Podrán participar todos nuestros
lectores, cualquiera sea su edad.
2. Serán aceptados a concurso pro-
gramas tanto para la primera
como para la segunda generación
de MSX. Estos programas podrán
ser enviados en cinta de cassette,
debidamente protegidos en su es-
tuche de plástico, o en disco de 3,5
pulgadas. En este último caso se
remitirá al participante un disco
CORTAR O FOTOCOPIA*
I
virgen a la recepción del progra-
ma enviado.
3. Todos los programas deberán lle-
var la carátula adjunta, o bien fo-
tocopia de la misma.
4. Cada lector puede enviar tantos
programas como desee.
5 . No se aceptarán programas ya pu-
blicados en otros medios o plagia-
dos.
6. Los programas deben seguir las
normas usuales de programación
estructurada, utilizando líneas
REM para marcar todas sus par-
tes, subrutinas donde sean nece-
sarias, etc.
7. Todos los programas deben in-
cluir las correspondientes ins-
trucciones, lista de las variables
utilizadas, aplicaciones posibles
de programa y todos aquellos co-
mentarios y anotaciones que el
autor considere puedan ser de
interés para su publicación.
PREMIOS
8. Los programas serán premiados
mensualmente, de modo acorde
con su calidad, con un premio en
metálico de 2.000 a 18.000 ptas.
FALLO Y JURADO
TITULO
CATEGORIA
PARA K
INSTRUCCION DE CARGA
AUTOR:
EDAD:
CALLE: N.°
CIUDAD DP TEL.:
N.° DE RECEPCION
9. El Departamento de Programa-
ción de MSX Extra hará la selec-
ción de aquellos programas de
entre los recibidos según su cali-
dad y su estructuración.
10. Los programas seleccionados
aparecerán publicados en la re-
vista MSX Extra, en la que se pu-
blicará, junto con el programa,
la cantidad con que ha sido pre-
miado.
Las decisiones
inapelables.
Los programas no se devolverán
salvo que así lo requiera el autor.
11.
12.
REMITIRA:
CONCURSO MSX
EXTRA
RocaiBatlle, 10-12
bajos
08023 Barcelona
Hardware MSX-2
Seguimos con el repaso a los slots que iniciamos en nuestro pasado número. Hoy trataremos algunas nuevas
rutinas para el control de los diferentes slots existentes en los MSX, sean de primera o de segunda
generación.
Bn el pasado número indicába-
mos las rutinas que permitían
acceder y modificar el selector
de slots de nuestros MSX. De esta for-
ma podemos seleccionar los slots que
deseemos de nuestro ordenador.
Pero el primer problema con que nos
encontramos al intentar utilizar los
slots en diferentes MSX es conocer en
cuál de ellos se encuentran los distin-
tos componentes de la memoria: me-
moria ROM, memoria RAM, etc.
El un MSX, llamémoslo A, la memo-
ria RAM correspondiente a la página O
puede encontrarse en el slot 2, mien-
tras que en otro MSX, B, puede encon-
trarse en el slot 1.
Si nosotros lo que queremos es co-
nectar esa zona de RAM, ¿qué slot de-
bemos conectar?
Existe un método seguro para cono-
cer la posición de la RAM, consistente
en ir buscándola por todos los posibles
SLOTS. Supongamos que queremos lo-
calizar la RAM correspondiente a la
página de nuestro MSX. Lo primero
que haremos es conectar el slot de la
página 0. Abora sólo tenemos que de-
ROM o por RAM. Para saberlo, escri-
bimos un dato en una posición deter-
minada de memoria, y a continuación
lo leemos de la misma. Si dicho dato ha
cambiado significa que estamos sobre
una zona de memoria ROM (el dato que
hemos escrito no ha sido memoriza-
do).
Un consejo: no escribáis datos co-
munes como ó 255 que puedan en-
contrarse por casualidad en esa zona
de la ROM. Buscad un dato poco usual,
como 118 (6PH76), que corresponde a
la instrucción HALT de ensamblador.
i localizado RAM, nuestra
ha terminado; pero si en
hemos localizado ROM, hemos
i seguir buscando por los slots 1, 2 y
hasta localizar la Zona de RAM.
[Atención! Puede que nuestro ordena-
dor no cuente con esa zona de RAM. Es-
tad atentos a todas las posibilidades.
Damos un ejemplo de todo este proceso
en el listado 1 , utilizando para eUo nue-
vas rutinas que comentamos un poco
más adelante.
Localizar la ROM es mucho más fá-
cil. En la inmensa mayoría de los MSX,
se halla en las páginas y 1 del slot 0.
Decimos la inmensa mayoría aunque,
en España, son todos. Sin embargo hay
programa se halla ocupada por la
ROM-BIOS.
El problema aparece cuando utiliza-
mos una unidad de disco y nos encon-
tramos en MSX-DOS o en CP/M. Al car-
garse nuestro programa no hallará
más que RAM. Para solucionar este
problema, y cualquier otro caso en el
cual haya dudas, existe una posición de
memoria que contiene información
acerca de la situación de la ROM-BIOS.
Se trata de EXPTBL, que indica el slot
en que se encuentra la ROM principal.
EXPTBL se encuentra en la dirección
&HFCC1, y la forma de interpretar su
contenido podéis observarla en la fi-
gura 1.
NUEVAS AYUDAS
Si nuestro programa se limita a co-
nectar la configuración de slots más
apropiada, y se olvida de los slots a
partir de ese momento, no tendremos
más problemas.
Pero es muy normal que mientras el
pensamos que nuestros programas
pueden llegar a otros países.
Si nuestro programa se encuentra
en cinta y debe cargarse desde el BA-
SIC, no tenemos ningún problema: la
ROM se encuentra en las páginas y 1
que utiliza el BASIC. Sólo tenemos que
leer el estado actual del selector de
slots.
Si nuestro programa se encuentra
en un cartucho ROM, la página en el
momento de comenzar la ejecución del
una serie de ru-
tinas que nos harán mucho más fácil
esta tediosa tarea.
* RDSLT (SPHOOOC): Lectura de un
byte en un determinado slot.
A <- Slot
HL <- Dirección
A <- Dato leído
Esta rutina permite leer un byte de
cualquier posición de memoria de cual-
quier slot. Para ello basta con indicar
en el registro HL la dirección de la que
debe leer y en el registro A el slot al que
MSB
7 é 5 4 3 2 1
T— T
N,U,
LSB
Numero del SLOT principal
Nunero de SUB-SLOT
■) "1" si se utilizan SUB-SLOTS
O, -) Bits no utilizados,
Figura 1
24
queremos acceder (en el formato de la
figura 1).
Si queremos leer datos de la ROM
principal debemos colocar a cero los 6
bits de mayor peso, e indicar con los
bits y 1 el slot al que queremos ac-
ceder.
Modifica los registros AF, BC y DE.
* WBSLT (6PH0014): Escritura de un
byte en un determinado slot.
A <- Slot
HL <- Dirección
E <- Dato a escribir
Esta rutina permite escribir el byte
especificado en el registro E a la direc-
ción indicada por HL, en el slot espe-
cificado en el registro A (según el for-
mato de la fig. 1).
Modifica los registros AF, BC y D.
IY <- Slot
IX <- Dirección
Esta rutina realiza un salto a la di-
rección indicada por IX, del slot que in-
diquen los 8 bits mas altos del registro
IY (en el formato de la figura 1). Hay
que estar seguros de que en el
slot indicado exista la rutina que pre-
tendemos llamar.
Modifica los registros variablemen-
te, dependiendo de la rutina a la que se
llame.
* ENASLT (G?H0024): Intercambia
los slots.
A <- Slot
HL <- Página
Conecta el slot especificado en el re-
gistro A (según fig. 1 ) en la página que
indiquen los dos bits de mayor peso del
3tro HL.
todos los registros.
■
PAGE
i
X
LISTADO 1
i
X
2
Ur\U
OS P OS OS OS M
yj U/ vj t'iyn
*— 1
RDSLT: EQU
yjyjyj i—, n
4
r
5
WRSLT: EQU
(ACA 1 4N
yj yj itn
6
C000
AF
A
7
C001
3235C0
i n
(SLGT) , A
LD B
DACA.
9
C004
w YJ YJ ~
*— • n • o i-* yj
i n
Plj \ JLU 1 /
1
C007
\ F7A
XI—/ W
F 7AH
1 1
X X
P009
21 FF^F
i n
L_Lv
riL ¡i --'i r r n
X
rn i aosos
v_ U X ~ rL' YJ
PAI 1
IaJPQI t
1 -T
1 •_■
LD
H ¡i V al_U 1 i
\—r YJ X -i—
9 1 FFTF
LD
ni_ ¡i or r r n
1
X ■—>
Lv U VJ YJ VJ
CALL
r\L/OL_ 1
16
C018
FE76
CP
76H
17
C01A
2812
JR
Z , RAM0
18
C01C
3A35C0
LD
A, (SLOT)
19
C01F
3C
INC
A
20
C020
3235C0
LD
(SLGT), A
21
C023
FE04
CP
4
22
C025
20DD
JR
NZ,PAG0
23
C027
3E4E
LD
A, "N"
24
C029
DF
RST
18H
25
C02A
3E4F
LD
A, "ü"
26
C02C
DF
RST
18H
27
28
C02D
C9
RET
*
LD2H
RAM0:
30
C02E
3A35C0
LD
A, (SLOT)
31
C031
C630
ADD
A, 30H
32
C033
DF
RST
18H
33
C034
C9
RET
34
35
C035
00
SLOT: DEFB
36
37
END
* CALLF («1*0030): Salto a subruti-
nas entre slots.
En este caso la rutina debe ser lla-
mada mediante la instrucción RST
6PH30, y los parámetros necesarios
para su funcionamiento deben encon-
trarse a continuación de esta instruc-
ción de ensamblador.
Se deben pasar dos parámetros. El
primero, un solo byte, indica el slot
(según fig. 1) en que se encuentra la
rutina que queremos llamar, y el se-
gundo, un word (2 bytes), indica la di-
rección de memoria a la que queremos
que se produzca el salto.
Modifica los registros de forma va-
riable, dependiendo de la rutina a la
que se salte.
Es recomendable utilizar RST en lu-
gar de CALL para llamar a esta rutina,
ya que de esta forma ahorramos un
byte de código, siendo además más rá-
pido el proceso de llamada a dicha ru-
tina.
Incluimos a continuación un ejem-
plo de uso de esta última rutina. Su-
pongamos que queremos saltar a la di-
rección 000C de la ROM-BIOS, situada
en la página del slot 0. Haríamos:
RST SfH30 ; Llamada
DEFB S?B00000000 ; SLOT
DEFW STH000C ; DIRECC.
; Resto del pro-
grama
UTILIZANDO LOS SLOTS DESDE
EL MSX-DOS
El último problema que abordare-
mos en el capítulo de hoy es el de la uti-
lización de los slots desde el MSX-DOS.
En este caso, como ya hemos comen-
tado, el usuario se encuentra con 64 Kb
de RAM. Esto provoca que no podamos
llamar directamente a las rutinas de la
BIOS que controlan los slots.
De este modo llegamos a una para-
doja: no podemos llamar a las rutinas
que nos permiten cambiar de slots por-
que están en otro slot al que no pode-
mos acceder sin dichas rutinas.
Pero el MSX está preparado para
todo, y en las direcciones inferiores de
la RAM utilizada por el MSX-DOS hay
una copia de ciertas rutinas que nos
permiten realizar trabajos con
Estas rutinas son las siguientes:
* RDSLT (fifHOOOC)
* WRSLT (SPH0014)
* CALSLT (SPHOOIC)
* ENASLT (6PH0024)
* CALLF (6PH0030)
La forma de utilizarlas es exacta-
mente la misma que si se tratara de las
rutinas de la ROM BIOS anteriormente
comentadas.
Y aquí os dejamos por este número.
En el próximo incluiremos el último
capítulo de esta exposición de la utili-
dad y funcionamiento de los slots. Ha-
blaremos de los SUB-SLOTS;..
por M. Campo»
25
TRATAMIENTO DE FICHEROS
En el pasado número hicimos una breve incursión en el mundo de la ordenación de ficheros. Hoy trataremos
QUICKSORT, así como el método para ordenar ficheros
QUICKSORT
Como pudimos comprobar en el
pasado número, uno de los ma-
yores inconvenientes de
tinas de ordenación radica en
titud Evidentemente son incompara-
blemente más rápidas que el proceso
habitual de ordenar «a mano»; pero si-
gue siendo un problema el tener que
esperar varios minutos a que se realice
la ordenación de nuestro fichero.
Ya indicábamos el mes pasado que
existe una rutina que permite realizar
ordenaciones de una forma mucho
más rápida que las comentadas en
aquella ocasión. Se trata de QUICK-
SORT.
Esta rutina se halla muy extendida
con ligeras variantes, ya que cada pro-
gramador la adecúa a su forma de tra-
bajar. Nosotros incluimos una rutina
general, de modo que sea fácil para
nuestros lectores adecuarla a sus pro-
gramas de gestión de ficheros.
QUICKSORT ha sido considerada,
desde siempre, una rutina de ordena-
ción complicada. Esto es debido a que
el algoritmo que utiliza para realizar la
ordenación no es evidente, como ocu-
rría en los métodos por burbuja, sus-
titución o inserción directa.
Dado que no pretendemos convertir
a nadie en un experto programador no
explicaremos el algoritmo. Hemos in-
cluido la rutina en el listado 1 para que
cualquiera pueda utilizarla sin excesi-
vos quebraderos de cabeza.
Además, para que no haya dudas en
cuanto al modo de utilizar esta rutina,
incluimos el listado 2, que representa
un ejemplo completo de utilización de
la misma.
ES QUICKSORT?
Quicksort basa su rapidez en una ca-
racterística muy especial. No ordena el
fichero en su totalidad, como hacen las
otras rutinas, sino que lo divide en sub-
conjuntos. La ordenación se realiza
elemento a elemento entre todos los
que forman cada uno de los subconjun-
tos. Progresivamente se va disminu-
yendo el tamaño de los subconjuntos
hasta que, cuando éstos se convierten
en la unidad, el fichero está ordenado
totalmente.
Estos subconjuntos se general divi-
diendo el fichero principal en grupos
con un número de elementos potencia
de dos. Por ejemplo, en un fichero de
300 elementos (como el caso del ejem-
plo), se formará un grupo de 256 ele-
mentos. Una vez realizada la ordena-
nuevos grupos de 128 elementos, luego
de 64, 32, 16, 8, 4, 2 y finalmente de un
solo elemento.
Todo el proceso empleado es compli-
cado, por lo que no profundizaremos
más en él; pero aquellos que lo deseen
pueden intentar interpretar la rutina
(es una tarea algo complicada; pero
con un poco de tesón todo es posible).
Pero toda esta complicación sólo tie-
ne una razón de ser, la velocidad. Para
resaltar la diferencia de
tre QUICKSORT y el resto
hemos realizado una ordenación de un
conjunto de 300 elementos utilizando
para ello tres rutinas diferentes.
En primer lugar hemos utilizado
QUICKSORT, que para ordenar los 300
elementos ha empleado, como media,
14.75 segundos. Hemos de aclarar que
este tiempo ha sido calculado utilizan-
do un ordenador compatible IBM AT-
286. Podéis observar que no existe nin-
guna diferencia entre el BASIC de este
aparato y el de nuestros MSX. La única
diferencia remarcable consiste en que
se puede eliminar el parámetro de RND
si no se utiliza.
A continuación repetimos el mismo
proceso (sobre el mismo ordenador,
claro está) con una de las rutinas de
SORT comentadas en el pasado núme-
ro, tardando 1 14.4 segundos como me-
Figura 2
FUSION
B -> 7 19 24 2¿ 47 12...
C-> 3 74 23., .
7>3 ->3
7<74 -) 1
19<74 -) 1?
mu -) 24
2é(74 -) 2¿
47(74 -> 47
12<74 -> 12
74 -) 74
en disco.
dia en realizar la ordenación de los 300
elementos. La diferencia de tiempos de
ejecución es espectacular (del orden de
10 veces más lenta que QUICKSORT).
Los más escépticos criticarán que
hayamos utilizado la más lenta de las
rutinas comentadas en el pasado nú-
mero para la medida de la velocidad;
pero las razones de esta elección que-
darán aclaradas un poco más adelante.
Recordad, sin embargo, que los tiem-
pos de ejecución de las tres rutinas co-
mentadas el pasado mes eran bastante
similares.
PANACEA?
Alguien se preguntará, ¿para qué
existen las demás rutinas si ya dispo-
nemos de QUICKSORT?
La razón la comentamos ya some-
ramente; no todos los ficheros son
iguales. Cada rutina es la mejor para
ordenar un tipo de fichero determina-
do.
Para demostrar esto hemos añadido
una segunda medición a las rutinas de
los listados 2 y 3. Hemos hecho que la
rutina ordene un conjunto de datos ya
ordenado. En el caso de QUICKSORT, el
tiempo de ejecución se ve reducido a
Tigor a 1
DIVISION
icliero A.
7 19 24 3|74|2¿j47|23 12., .
Bv C w 8 U Cv vB
B -> 7fí9M2¿ 47 12,,,
C -) 3 74 23.,,
->D 3 7 19]24 2¿ 47\Ü 74 23,, ■
26
6.45 segundos, mientras que el del
SORT normal se mantiene en 97.6 se-
gundos.
Ahora bien, si sabemos que los fiche-
ros a ordenar van a estar casi orde-
nados podemos modificar la rutina de
SORT normal, llegando así al listado 4.
En este listado hemos añadido una
comprobación: SI el fichero está orde-
nado ENTONCES hemos terminado de
ordenar.
Esta condición es muy fácil de im-
plementar en u
bítual;
mos los resultados de la ejecución de
los listados 2 y 4.
Si el fichero está totalmente desor-
denado, la rutina QUICKSORT tarda
LISTADO 1
2 ' *** QUICKSDRT ***
•-• -
10 L=1:K=0
20 L.=L+L: IF |_<=MAX THE
N 20
30 L=(L-1)\2
40 FÜR 1 = 1 Tü MAX--L
50 IF A(I) >A(I+L) TH
EN SWAP A < I ) , A ( I+L ) : K=
I~L
60 IF K<1 THEN 80
70 IF A(K) >A(K+L) TH
EN SWAP A ( K ) , A ( K+L ) : K>
K-L:GOTO 60
80 NEXT I
90 L=L\2: IF L>0 THEN 4
LISTADO 2
130
80
*** QUICKSORT ***
4 ' Tiempo medio:
14. 75 segundos
5 '
6 ' Tiempo ordenado:
6.45 segundos
7 '
10 DEFINT A-Z
20 MAX" 300
30 DÍM A (MAX)
40 FÜR 3>Í TÜ MAX: ATI)
=INT(RND*1000) : NEXT I
50 L=1:K=0
60 L=L+L:IF L<=MAX THE
N 60
70 L=(L-1)\2
80 FÜR 1=1 Tü MAX-L
90 IF A(I ) >A(I-H_) TH
EN SWAP A- (.¿1 ,ft.a+L) :K=
I-L
100 IF K<1 THEN 120
110 IF A ( K ) >A(K+L) T
HEN SWAP A ( K ) ,A(K+L) :K
=K~L : GDTÜ 100
T I
L=L\2:IF L>0 THEN
LISTADO 3
1 '
2 ' *#* SÜRT ***
3 '
4 ' Tiempo medio:
114.4 segundos
6 Tiempo ordenado:
97.6 segundos
7 '
10 DEFINT A-Z
20 MAX =300
30 DIM A (MAX)
40 FÜR 1=1 Tü MAX:A(I)
=1 NT (RND* 1000) : NEXT I
50 FÜR 1=1 TÜ MAX-1
60 FÜR J=I Tü MAX
70 IF A(I) >A(J) TH
EN SWAP A(I) ,A(J)
80 NEXT J
90 NEXT I
LISTADO 4
2 ' *** SORT 2 ***
3
4 Tiempo medio:
126.2 segundos
5 '
6 ' Tiempo ordenada:
0.7 sequndos
7 '
10 DEFINT A-Z
20 MAX =300
30 DIM A (MAX )
40 FÜR 1=1 TO MAX:A(I>
1=1 NT (RND* 1000) : NEXT I
50 FOR 1=1 Tü MAX-1
60 FÜR J=I TÜ MAX
70 IF A(I) >A(J) TH
EN SWAP A(I) ,A(J) :N=1
80 NEXT J
90 NEXT I
14.75 segundos mientras que SORT 2
tarda 126.2 segundos (algo más de 2
minutos).
fichero está compléta-
lo QUICKSORT tarda
6.45 segundos, una eternidad compa-
rada con los 0.7 segundos de SORT 2.
Como se demuestra de estas compro-
baciones, no hay rutina perfecta, sólo
el conocimiento del fichero sobre el
que estamos trabajando, y la experien-
cia, pueden ayudarnos en la difícil elec-
ción de la rutina a utilizar en nuestros
programas.
ORDENACION DE FICHEROS
SECUENCIALES
Lo prometido es deuda y, como ha-
bíamos anunciado en nuestro pasado
número, explicaremos el modo de rea-
lizar ordenaciones de ficheros secuen-
ciales.
Tal vez no quedó suficientemente
claro en su momento, y alguien abrigó
falsas esperanzas; pero es imposible
ordenar un fichero secuencial en cinta.
Esta espantosa limitación viene pro-
vocada por la imposibilidad de mante-
ner dos ficheros abiertos al mismo
tiempo en el cassette. No podemos por
tanto leer datos de un fichero para gra-
barlos en otro una vez ordenados.
Lo que sí podemos hacer es cargar el
fichero secuencial de la cinta en me-
moria. Una vez hecho esto podemos
aplicar cualquiera de las rutinas de or-
denación que ya conocemos, sin nin-
gún problema, y grabar el resultado en
otro fichero en cinta.
Lamentablemente esto no lo podre-
mos realizar con los ficheros más
grandes, que excedan la capacidad de
memoria de la máquina.
Sólo los usuarios de unidad de disco
podrán realizar este tipo de ordena-
ción en sus ficheros secuenciales.
PARA ORDENAR...
Al contrario de lo que hemos hecho
con la rutina QUICKSORT, aquí expon-
dremos el método a seguir para reali-
zar la ordenación; pero no daremos lis-
tado. Esperamos que esto sirva de ejer-
cicio para nuestros sufridos lectores.
El proceso a seguir es muy simple,
hay que dividir el fichero en dos (algo
más ordenados que el primero), y lue-
go volver a fusionarlos en un fichero.
Hay que repetir el proceso tantas veces
como sea necesario.
DIVISION
Llamaremos, para clarificar el pro-
ceso, fichero A al fichero original, y fi-
cheros B y C a los ficheros obtenidos de
la división del fichero A. El proceso de
división del fichero en dos es el si-
guiente. Hay que enviar al fichero B el
27
TRATAMIENTO DE FICHEROS
primer elemento del fichero A. Se com-
para con este elemento el segundo del
fichero A. Si resulta estar correcta-
mente ordenado se envía al fichero B y
se repite el proceso con el siguiente
elemento del fichero A.
Si el elemento no está correctamente
ordenado, se envía al fichero C. Se re-
coge el siguiente elemento de A, y en
caso de estar correctamente ordenado
se transfiere a C (cuidado). Se repite el
proceso hasta encontrar un elemento
desordenado, que se vuelve a enviar a
B.
Sólo hay que repetir este proceso
hasta que se hayan repartido todos los
elementos del fichero A.
Para entender mejor este proceso, os
remitimos a la figura 1.
la división. Llamaremos D al nuevo fi-
chero, resultado de la fusión de B y C.
Tomamos el primer elemento de B y
el primero de C. Enviamos el menos de
ellos a D (si ordenamos de menor a
mayor), y leemos otro elemento del fi-
chero al que perteneciera el elemento
grabado en D. Se repite esta compara-
ción hasta que se haya fusionado la to-
talidad de los ficheros.
Para entender mejor este proceso os
remitimos a la figura 2.
ÍATOO
La fusión no es mas complicada que
El último problema con que nos en-
contramos radica en saber cuándo se
ha terminado la ordenación. La solu-
ción es muy sencilla. Cuando el fichero
A está ordenado, el fichero B es igual al
fichero A y el fichero C está vacío. ¿Os
animáis a programarlo vosotros?
Y LA TRISTE DESPEDIDA
Terminamos aquí el artículo de hoy,
y con él esta sección, «Tratamiento de
ficheros». Esperamos que haya servido
para que conozcáis un poco mejor el
fascinante mundo de los ficheros.
Esperamos que no haya sido incon-
veniente el dejar muchos apartados
como ejercicios. Hemos creído que esta
solución era interesante en un tema
como los ficheros, de por sí algo abu-
rrido. Hemos preferido que os peleéis
un poco con vuestro ordenador a que
tengáis que soportar parrafadas inter-
minables de texto.
i Y eso sí!, aunque acabe esta sección,
no nos olvidaremos de los usuarios de
unidades de disco, ni de aquellos que
busquen algo más que juegos para su
MSX.
Por Willy Miragall
REGALATE Y DISFRUTA DE UN LIBRO
USUARIO DE MSX
UN LIBRO PENSADO
PARA TODOS LOS OUE
QUIEREN INICIARSE
DE VERDAD EN LA
PROGRAMACION BASIC
Construcción de programas. El po-
tente editor todo pantalla. Constan-
tes numéricas. Series, tablas y ca-
denas. Grabación de programas.
Gestión de archivo y grabación de
datos. Tratamiento de errores. Los
gráficos del MSX. Los sonidos del
MSX. Las interrupciones,
ción al lenguaje máquina.
I Wll K 1.1 I HUI HO
JUAN l AHI OS GONZAI I /
guia roi> .rlwidid d« (¡tinción
componer música a una. do* o tra iuc«
organizar tus propio» programas de gestión....
LOS SECRETOS DEL
Y ADEMAS PROGRAMAS
DE EJEMPLO
Alfabético. Canon a tres voces.
Moon Germs. Bossa Nova. Blue
Bossa. La Séptima de Beethoven.
La Flauta Mágica de Mozart. Scra-
ple from the apple & Donna Lee. The
entretainer. Teclee un número. Ca-
lendario perpetuo. Modificación
Tabla de colores SCREEN 1 . Rec-
tángulos en 3-D. Juego de caracte-
res alfabéticos en todos los modos.
Juego Matemático. Más grande más
pequeño. Poker. Breackout. Apoca-
lypse Now. El robot saltarín. El ar-
chivo en casa.
Deseo me envíen el libro Los secretos del MSX, para lo cual adjunto talón de 1.500 ptas. a la orden de
MANHATTAN TRANSFER, S.A. importante: No se hace contra reembolsos.
Calle n.° Ciudad CP
Este boletín me da derecho a recibir los secretos MSX en mi domicilio libre de gastos de envío o
cualquier otro cargo.
importante: indicar en el sobre MANHATTAN TRANSFER, S.A.
«LOS SECRETOS DEL MSX»
Roca i Batlle, 10-12 Bajos-08023 BARCELONA
1
COMO ENCONTRARLOS
Muchos de vosotros os habréis preguntado cómo se pueden encontrar esos «mágicos» pokes de vidas
infinitas, energía perpetua, ver el final del juego y un largo etcétera. En este
desvelar los misterios de cómo encontrarlos.
E
do.
n un principio, encontrar un
poke de vidas infinitas es casi
una labor detectivesca, que se
más o menos fácil según la forma
autor del juego lo haya protegi-
Para poder analizar un juego se ne-
cesita primero un «equipo» compuesto
por los siguiente programas:
— Un desensamblador: Indispensa-
ble para poder ir descifrando las ruti-
nas que nos llevarán a encontrar el tan
ansiado poke. El desensamblador de-
bería ocupar poca memoria y poder ser
relocalizable, y a la vez ser completa-
mente manejable. No es necesario que
nos proporcione un listado «fuente»
del programa, sino que se limite a ir
traduciendo el programa a medida que
se lo pidamos.
— Un programa que nos dé las di-
recciones de inicio, final y ejecución de
un programa (CASNOM) para poderlo
analizar.
— Un programa de búsqueda (CAR-
BUS): Este programa tiene la función
de buscar una cadena de caracteres en
la memoria, unos bytes determinados o
una dirección determinada. Es fácil de
un programa de estas caracte-
3 en Basic, pero sería demasiado
lento, por lo que es más útil hacerlo en
lenguaje máquina. Es también muy in-
teresante que dicho programa pueda
buscar bytes relativos, es decir, si el
primer byte que recoge vale X, el se-
gundo debe valer X-6 y el tercero X+6,
independientemente del valor X.
— Un programa que nos presente la
memoria en formato 'spríte' (BUSCA):
Sirve principalmente para localizar
mensajes que no estén escritos con ca-
racteres, sino que estén almacenados
en formato gráfico. Tiene además una
doble utilidad, ya que nos permite lo-
calizar los 'sprites' de un programa,
borrar a los enemigos (poniendo ceros
en las posiciones de memoria que los
definen) y si el programa se limita a
comprobar si hay colisiones de sprites,
ya se habrán anulado a los enemigos.
Este método puede ser utilizado prin-
cipalmente en programas como Manic
Miner, Blagger, Jet Set Wüly, etc...
— Un programa que visione toda la
memoria en formato de texto (LET-
BUS): Permitirá localizar todos los
mensajes de un programa (si los ca-
racteres no están , camuflados , ) y obrar
en consecuencia.
Es también indispensable tener un
cierto conocimiento de ensamblador
para poder localizar el inicio y final de
cada subrutina.
Para aclarar un poco toda la expli-
cación de cómo encontrar un poke, va-
mos primero a explicar el motivo por
el que se hace así:
Pongámonos por un momento en lu-
gar del programador y pensemos cómo
haríamos nosotros que nos quitasen
una vida.
¿Le ha tocado la bomba? (esta com-
probación puede ser muy complicada)
Sí no es así, vuelve.
Llama a la subrutina de quitar una
vida (SUBVTD).
Vuelve.
SUBVTD: Decrementa el número de
vidas (una posición de memoria).
Compara el número de vidas con 0.
Si nó es 0, vuelve.
Salta a subrutina de
saje final (MENELN).
Vuelve.
MENFIN: Carga en un valor el inicio
del mensaje final (LD HLjin), llama
subrutina que imprime el mensaje que
se encuentre en HL, salta al inicio del
programa.
Lo que es fundamental es lograr ac-
ceder a una subrutina que se ejecute
cuando se nos reste una vida o se acabe
29
POKES DE VIDAS INFINITAS
el juego. Entonces todo se limita a sal-
tar de una subrutiha a otra hasta en-
contrar la que decrementa el número
de vidas o hace la comparación con 0.
El ejemplo anteriormente puesto es
una simplificación de un programa
real, y lo único que se hace, es una vez
localizada MENFIN, buscar quién lla-
ma a MENFIN (SUBVID) y modificarla
de manera que nunca llame a MENFIN.
Pasemos ahora a describir paso por
paso las operaciones a realizar para
encontrar los pokes de vidas infinitas
en un programa:
a) Hay que desproteger el programa
(si está protegido y si es posible
desprotegerlo) de manera que esté
localizado en la memoria sin que se
ejecute. En caso de que el programa
esté compuesto por varias partes,
hay que procurar que el programa
principal esté localizado en la me-
moria o actuar como si cada parte
fuera un programa independiente.
b) Hay que comprobar si el programa
no se relocaliza al ejecutarlo, en
caso de que lo haga, buscar la di-
rección de memoria a donde se
traslada y calcular la diferencia en-
tre dicha posición y la actual, y di-
cha diferencia se ha de restar siem-
pre a la hora de buscar un puntero
o la llamada al inicio de una sub ru-
tina.
Ej. Si el programa está en la pos.
H8800 y se traslada a la pos.
H8000, la diferencia es de H0800.
Para saber si el programa se relo-
caliza, basta con desensamblar a
partir de su dirección de ejecución
y buscar la instrucción LDIR, si se
encuentra dicha instrucción, basta
encontrar el valor que se le da a HL
y a DE para saber origen y destino.
c) Si en el programa aparece el men-
saje de GAME OVER o similar, con
el programa CARBUS se localiza la
posición donde se encuentra dicho
mensaje. Si no se encuentra puede
ser por 3 motivos:
1 — Existe más de un espacio entre
GAME y OVER, para salir de
dudas, buscar sólo OVER o sólo
GAME.
2 — Al redefinir las letras, el pro-
grama cambia su código ASCII
(las camufla), de manera que
hay que buscar el mensaje se-
gún caracteres relativos, para
ello se averigua el código ASCII
de las tres primeras letras del
mensaje (en caso de GAM, son
71,65 y 77). A continuación se
busca un byte cuyo siguiente
sea su igual menos 6, y el si-
guiente del siguiente sea su
igual más seis, esto traducido a
Basic seríá:
FOR I=Dir. inicio TO Dir. final:
A=PEEK(I): B=PEEK(I+1):
C=PEEK (1+2): IF A-B=6 AND
C-A=6 THEN PRINT I: NEXT
ELSE NEXT
Si no se encuentra el mensaje
puede ser porque al redefinir
los caracteres, no redefine todo
el abecedario sino que se limita
a redefinir los caracteres que
necesita. Para saber qué carac-
teres son estos, con el progra-
ma BUSCA, se localizan las le-
tras redefinidas, y con las le-
tras existentes se crea un abe-
cedario y se busca el lugar que
ocupan las letras GAM en re-
lación a dicho abecedario.
3 — El mensaje está en formato
gráfico, siendo fácil de encon-
trar entonces con el programa
d) Una vez localizado el inicio del
mensaje final, se anota la dirección
donde se encuentra dicho mensaje,
seguidamente, y con el programa
CARBUS, se busca en toda la me-
moria donde aparece dicha direc-
ción y se anota la dirección donde
aparece. En caso de haber dos di-
recciones, se pueden seguir dos li-
neas paralelas.
En caso de no encontrar ninguna
posición de memoria que coincida
con el inicio del mensaje final, hay
que intentarlo con la dirección del
e) Llamaremos POSK a la zona de me-
moria que anota el puntero del ini-
cio del mensaje final. Desensambla-
mos a partir de POSK-1, y lo lógico
es obtener una instrucción del tipo
LD HL.43250, en caso de que no co-
rresponda a este tipo de instruc-
ción, buscar otra POSK.
f ) Una vez localizada la POSK adecua-
da, desensamblamos a partir de la
POSK-200 o similar en busca del
inicio de la subrutina que contiene
a la POSK, el inicio viene marcado
porque la instrucción anterior in-
dica el final de la subrutina ante-
rior (es del tipo RET, JEnno JP
nn). Cada vez que encontramos el
inicio de una subrutina, lo anota-
mos, y una vez llegados a la POSK,
la última dirección anotada, será el
inicio de la subrutina que contiene
a la POSK, la llamaremos POSL.
g) Buscamos en la memoria la POSL,
llamándola POSK, y desciframos a
partir de POSK-1, en caso de encon-
ponemos ceros en el lugar donde se
encuentre dicha instrucción y eje-
cutamos el juego, si ha habido suer-
te, al llegar a vidas no saldrá el
mensaje de GAME OVER y podre-
mos seguir jugando, en caso con-
trario, pasamos al punto f.
En caso de no encontrar la POSL,
puede ser porque no es la POSL ade-
cuada o porque la llamada que se le
hace se hace mediante un salto re-
lativo (JR nn). Para encontrar la
dirección donde hace dicho salto,
habrá que usar el desensamblador,
y desensamblar desde POSL- 128
hasta POSL+128, buscando una
instrucción JR que llame a la POSL.
Una vez encontrada dicha instruc-
ción, procedemos como indica el
principio de este punto,
h) Una variante puede ser la de, al en-
contrar una subrutina, buscar si en
dicha subrutina se incrementa,
compara u opera con alguna direc-
ción (o con registros del tipo A o
[HL]). En este caso, basta buscar en
toda la memoria (partiendo de la
base que la dirección que tenemos
contiene el número de vidas) la di-
rección, encontrando asi donde se
adjudica el número de vidas inicia-
1©S*
EJ. POSL LD A,( 34769) 'Posible di-
rección que contiene las
vidas. CP
POSK-l:JR Z.43401 'Dirección
que saca el mensaje
GAME OVER. JP 42010
Una forma de comprobar si una di-
rección contiene el número de vi-
das es la de ejecutar el juego, y a un
número determinado de vidas, pul-
sar el botón de RESET si vuestro
MSX dispone de él y comparar el
número de éstas con el número que
contiene la posición de memoria
que tenemos.
Pasemos ahora a tratar un ejemplo
completo. Se trata del juego MAXIMA,
que para los que no lo sepan, es un tí-
pico juego de marcianos que se adapta
perfectamente a lo explicado hasta
ahora. Vamos a explicar todo el pro-
ceso seguido para encontrar un POKE
de vidas infinitas.
Este juego tiene una protección bas-
tante buena, ya que carga un programa
en Basic con BLOAD para ejecutarlo se-
guidamente, cargando entonces la se-
gunda parte que es el juego propiamen-
te dicho. Es esta la parte sobre la que
centraremos nuestras pesquisas:
Para empezar, encontramos fácil-
mente el mensaje GAME OVER, que se
encuentra en la posición de memoria
(39592). Buscamos entonces la posi-
ción de memoria que contiene esta di-
rección, y obtenemos la 40418. Pasa-
mos entonces a buscar el inicio de la
subrutina que contiene al 40418, y re-
sulta la dirección (40379). Buscamos a
continuación la zona de memoria que
contiene esta dirección, obteniendo la
40321. Descifrando la instrucción que
hace la llamada, comprobamos que es
un salto sólo si un valor es igual a 0.
Muy animados, introducimos 3 pokes
(POKE 40320,0: POKE 40321,0: POKE
40322,0) y ejecutamos el juego, deja-
mos que nos maten todas las vidas y
esperamos con el corazón en vilo; pero,
¡oh, decepción!, no sale el mensaje de
GAME OVER, pero sí que se acaba la
partida. Continuamos nuestras pesqui-
30
sas desde el punto que las dejamos, es
decir, en la posición 40321, buscamos
el inicio de la subrutina que contiene a
esta instrucción, y la obtenemos: es la
(40318). Pasamos a buscar la zona de
memoria que contiene dicha dirección,
y damos con la 37628. Descifrando
esta instrucción, comprobamos que se
trata de otro salto dependiente del va-
lor de un registro. Un poco más ani-
mados, introducimos otros 3 pokes
(POKE 37627,0: POKE 37628,0: POKE
37629,0) y ejecutamos el juego y... ¡oh,
maravilla de las maravillas! Después
de matar todos los tanques seguimos
jugando como tal cosa. Ya han sido lo-
calizados los pokes de vidas infinitas;
pero aún se puede hilar más fino. He
aquí un listado de la zona de memoria
que hemos poqueado:
LD A,(IY+17)
ORA
JP M.40318 'Esta instrucción i
. que ha sido anulada.
Pocas dudas nos i
que la po-
m
contiene el número de vidas, de ma-
nera que, con una tabla de todos los
mnemónicos del Z80 en la mano, bus-
camos el que cargue en (IY+d) un va-
lor, y obtenemos que tiene 3 bytes que
lo definen. Estos son:
253 (fijo), n (indica si se carga con
A, B, C.) y 17 (el valor que se le suma
arY).
Pasamos a hacer uso del CARBUS,
buscamos un 253, comodín (cualquier
valor, se introduce con un # o con un
35 en decimal) y un 17, y obtenemos 6
posiciones de memoria (37494, 37623,
38015, 38026, 40327 y 40379), y nos
dedicamos a desensamblarlas una por
una, encontrando que dos de ehas se li-
mitan a decrementar el contenido de
(IY+17), estas son las direcciones
38015 y la 40379. Cogemos la primera
y le introducimos un solo poke (POKE
38015,17), con el que cambiamos la
instrucción, que pasa de ser DEC
(IY+17) a LD DE.4405, con lo que que-
da anulado su efecto. Ejecutamos el
juego y efectivamente, el número de vi-
das no decrece. Después de dar un par
de vueltas al marcador, pasamos al si-
guiente y último apartado.
El último punto es el de cómo intro-
ducir el poke en el programa. Para ello,
basándonos en el programa original
(reduciéndolo un poco), hemos creado
un sustituto del primer trozo del pro-
grama, de manera que sólo cargue el
segundo.
Y ya para finalizar, sólo falta decir
que los programas citados anterior-
mente (BUSCA, CARBUS, LETBUS y
CASNOM) aparecen publicados en este
mismo numero.
Si lográis encontrar algún poke de
vidas infinitas o similar para algún
juego, no dudéis en enviárnoslo.
Roni Van-Ginkel
SUSCRIBETE HOY MISMO SI
QUIERESESIAREN VANGUARDIA
La primera revista de MSX de España en tu domicilio caria
mes. Por el precio de DIEZ HUMEROS recibirás DOCE.
Además tu condición de suscrlptor te da derecho
a descuentos y ofertas especiales en otros productos.
MANHATTAN
SJL
Nombre y apellidos
Calle N.° ..
Ciudad Tel
Provincia D.P
Deseo suscribirme a la re
SUPERJUEGOS
a partir del número
FORMA DE PAGO: Mediante talón b an-
earlo a nombre de:
MAHKATTAN THAW8TER, SJL
C/. Roca i BatUe, 10-18
08083 Barcelona
Muy importante : para «vitar retraaos en la
recepción de loa números rogamos deta-
llóla exactamente el nuevo número de loa
dlatritoa postales. Gracias.
■apaña por correo normal Ptaa. 8.780-
■uropa por avión Ptaa. 3.800-
SSUBAt
31
J
DO
CJ
ÍJKíll II U
BT
!C.
A
mación es una muestra de la ventaja del
memoria del ordenador en busca de los gráficos de un juego o incluso de la airee
Este programa nos permite avanzar y retroceder por toda la memoria, podemos a
te a byte (cursor izquierda) o de 38
n donde comienza un programa,
byte a byte (cursor derecha), de
valor de A en hexadecimal).
rsonalmente, para lo que más utilizo este programa es para buscar dónde están los 8PBITES de un determinado juego,
de memoria donde se encuentran los SFBITES enemigos
detecta las colisiones se habrán anulado
programa es convi
Como el programa está en la zona de memoria que utiliza el Basic para almacenar sus programas, no es aconsejable
en memoria, por el mismo motivo, el listado en Basic para cargar el programa en
ne que cargar primero el programa en una zona libre de memoria, nacer un NEW (os
antes de hacer un RUN) y trasladar el programa hacia su zona de memoria correcta,
rto, podéis grabar el programa con un BSAVE "BUSCA"
y para cargarlo:
i KEY 8, "D=l
38800, 33078
1 •
2 ' *** Cargador BUSCA ***
3 ■
10 CLS:PRINT"Un momento ..."
20 FOR 1=40000! TO 40275!
30 READ A*: A=VAL < "&H"+A*>
40 POKE I,A
50 N=N+A
60 NEXT
70 IF NO30797 THEN PRINT " ERRGR EN
DATAS": STOP
80 PRINT "Para grabar el programa h
acer: ": PRINT "BSAVE " +CHR* < 34 ) + " BUS
C A M +CHR* < 34 ) + " , 32800 , 33075 " : END
110 CLS: PRINT "PULSA RETURN" : PRINT ! P
RINT"N=32800:FOR 1=40000 TG 40275: P
OKE N, PEEK ( I ) : N=N+1 : NEXT" : PRINTCHR*
(11)
120 NEW
130 DATA 3E,0A,32,E9,F3,3E,00,32,83
,80,32,EA,F3,32,EB,F3,CD,6F,00,21,0
0, IB, 1E,08, 16,04,0E, 18,06,EB,3E
140 DATA 3C,F5,78,81,47, 16,04,F1,CD
,5F,80,81,81,F5, 15, 7A, FE, 00, C2, 46, 8
0, Fl , ID, 7B, FE, 00, C2, 3E, 80, C3, 84
150 DATA 80,F5,78,CD,4D,00,23,F1 ,F5
, CD, 4D, 00, 3A, 83, 80, 23, F5, CD, 4D, 00, F
1 , 3C, 3C, 3C, 3C, 23, 32, 83, 80, 3E, 05
160 DATA CD,4D,00,F1,23,C9,01,21 ,00
, 80, 1 1 , 00, 38, 01 , 00, 04, E5, CD, 5C, 00, E
1,3E,00,32, 16,F4,3E,0B,DF,7C,CD
170 DATA D9,80,7D,CD,D9,80,3E,08,CD
,41,01,FE,FF,28,F7,CB,7F,28, 12,CB,6
7,28, 12, CB, 77, 28, 19, CB, 6F, 28, 0E
180 DATA CB,47,28, 19, 18, C6, 23, C3, 87
, 80, 2B,C3, 87, 80, 11,20,00, 19,C3,87,8
0. 11. 20.00, ED, 52, C3, 87,80, C9, 06
190 DATA 30,CB,7F,C4,0C,81,CB,77,C4
, 14,81,CB,6F,C4, 1C, 81 , CB, 67, C4, 1F,8
1, CD,21,81,06,30,CB,5F,C4,0C,81
200 DATA CB, 57, C4, 14,81, CB,4F,C4, 1C
,B1,CB,47,C4, 1F,81,CD,21,81,C9,F5,7
8,06,08,80,47,F1,C9,F5,78,06,04
210 DATA 80,47,F1,C9,04,04,C9,04,C9
, F5, 3E, 00, 32, 16, F4, 78, FE, 3A, D4, 30, 8
1
n
w
1
2
3
4
5
6
7
8
9
11
11
12 8l2f
13 8122
14 8025
15 8127
16 8I2A
17 802D
18 8030
19 8133
21 8036
21 8638
22 813 A
23 803C
24 8#3E
25 8040
26 8#41
27 8142
28 8#43
29 8144
30 8146
31 Bf47
32 B04A
33 B04B
34 604C
35 804D
36 B04E
37 8#4F
38 8131
39 8ff54
40 8133
; til
BUSCA III
; Prograaa que presenta toda
; la aesona central en foraato
; SPRITE para localizar los
; gráficos de un prograaa .
5
; Por Roni Van-Ginkel
3E0A
32E9F3
3EM
328380
32EAF3
32EBF3
CD6F00
21001 B
1E08
1604
0E18
06EB
3E3C
F5
78
81
47
1604
Fl
CD5F80
81
81
F3
15
7A
FE00
C24680
Fl
ID
L00P2:
0R5 328N
LOAD 32800
LD A,10
(0F3E9HJ.A
M
(DAT), A
(0F3EAH),A
(0F3EBH),A
CALL 6FH
LD HL.6912
M
M
C,24
B.235
A.60
¡DIRECCION INICIO
; COLOR 10,1,1
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
; SCREEN 1
;0R6 TABLA SPRITES
; DATOS INICIALES
jPOSICIONAR SPR.
PUSH AF
LD A,B
LOOP1:
ADD
LD
LD
POP
A, C
B, A
M
AF
CALL VPKE
ADD A.C
ADD A,C
PUSH AF
DEC D
LD A,D
CP
JP
POP
DEC
NZ,L00P1
AF
E
41 8036 7B
42 8037 FE00
cp í' E
43 8059 C23E80
JP NZ,L0OP2
ái OMKC PTOIOA
44 olOL IÓU4ÜI
JP PR06
45 805F F5
VPOKE:
PUSH AF
46 8060 78
LD A,B
47 8061 CD4D00
CALL 4DH
48 8064 23
INC HL
49 8065 Fl
POP AF
50 8066 F5
PUSH AF
51 8067 CD4D00
CALL 4DH
52 B06A 3A8380
LD A, (DAT)
53 806D 23
INC HL
54 B06E F3
PUSH AF
55 806F CD4D00
CALL 4DH
56 8072 Fl
POP AF
57 8073 3C
INC A
58 8074 3C
INC A
59 8075 3C
INC A
60 8076 3C
INC A
61 8077 23
62 807B 328380
63 807B 3E05
64 807D CD4D00
CALL 4DH
POP AF
65 8080 Fl
66 8081 23
INC HL
67 8082 C9
RET
68 8083 01
DAT:
DEFB 1 ,
69 8084 210080
PR06:
LD HL, 32768
70 8087 110038
BUCLE:
LD DE, 14336
71 808A 010004
LD BC, 1024
72 808D E5
PUSH HL
73 808E CDSC00
CALL 5CH
POP HL
75 8092 3E00
LD M
76 8094 3216F4
LD (0F416HJ.A
77 B097 3E0B
LO A,U
78 8099 DF
RST 18H
79 809A 7C
LD * A,H
80 809B CDD980
CALL PRINT
¡ESCRIBIR DATOS
;EN LA VRAN
;HL*INICIO
;DE=0R6 TABL
;BC=LONGITUD
{DEFINIR SPRITES
¡SALIDA POR PANTALLA
;HOE
m
wÍJM Wm
81 8§9E 7D
LO A,L
82 809F CDD980
CALL PRIMT
83 BM2 3E08
TECLA:
LD A,8
{TECLADO
84 60A4 CD4101
CALL 141H
85 B0A7 FEFF
CP 255
¡PULSACION ?
. 86 80A9 28F7
JR Z, TECLA
;SI NO ESPERA
87 8MB CB7F
BIT 7,A
88 BMD 2812
JR Z.RIGHT
; CURSOR DERECHA
89 BMF CB67
BIT 4,A
9« 8IB1 2812
JR Z.LEFT
{CURSOR IZQUIERDA
91 BfB3 CB77
BIT 6,A
92 SftS 281A
JR Z.DOHN
¡CURSOR ABAJO
93 80B7 CB6F
BIT 5,A
94 80B9 28IE
JR Z,UP
f -un jv \ nnn ivn
93 Bf BB CB47
BIT f,A
96 BfBD 2819
JR Z.EIIT
¡BARRA « SALIR
97 80BF 1BC6
JR BUCLE
98 8IC1 23
99 8IC2 C387BI
R16HT:
W HL
JP BUCLE
{AVANZAR LENTO
1M 80C5 2B
LEFT:
DEC HL
¡RETROCEDER LENTO
lf 1 80C6 C387BI
JP BUCLE
112 8K9 111F00 UP:
LO DE, 31
{RETROCEDER RAPIDO
113 BflCC ED52
SBC HL, DE
114 8ICE C38780
JP BUCLE
115 B0D1 112§##
106 80D4 19
DON:
LD DE,32
ADD HL.DE
; AVANZAR RAPIDO
1F 8#D5 C3878I
JP BUCLE
RET
118 8#D8 C9
EX1T:
¡VOLVER AL BASIC
Mf tmua
PRUT:
LD B,48
; IMPRIME EL
110 BfDB CB7F
BIT 7,A
; VALOR DE A EN
111 Bf DD C40C81
112 BfEfl CB77
CALLNZ.P8
BIT 6,A
{HEXADECIHAL
113 8#E2 C41481
CALL NZ.P4
114 BffES CB6F
BIT 5, A
115 8#E7 C41C81
CALL NZ,P2
116 8#€A CB67
BIT 4,A
117 80£C C41F81
CALL NZ.Pl
118 80EF CD2181
CALL PRIHT2
119 8#F2 1631
LD 6,48
12f 80F4 CB5F
BIT 3,A
121 8fF6 C4fC81
CALL NZ,P8
Oí
122 8fF9
123 8#FB
124 8fFE
123 81M
126 8113
127 8115
128 8118
129 81M
13f 81fC
131 81ID
132 81fE
133 8111
134 8111
135 8112
136 8113
137 8114
138 8115
139 8116
141 8118
141 8119
142 81 1A
143 81 IB
144 81 1C
145 81 ID
146 81 1E
147 81 1F
148 8120
149 8121
150 8122
131 8124
152 8127
133 8128
154 812A
155 812D
156 812E
157 B12F
158 8130
159 8132
160 8133
161
_»_'/ n~OQt~tQC
l\UU(\ill II l-i
CAI
3N0M
1
El programa que ahora os ofrecemos s
PorKoniVan
programa que ahora os ofrecemos sirve para conocer las direcciones de inicio, final, ejecución y la longitud de un
programa grabado en cinta (en caso de ser un programa en Basic, se limita a poner el nombre y el formato con
que ha sido grabado).
Para lanzar el programa, basta poner DEFUSR=36000: D=USR(0) y poner la cinta en el principio, pudiéndose
- cualquier momento ;
1 '
2 9 Cargador para el programa CASNO
M
3 *
10 CLS:PRINT"Un momento ..."
20 FOR 1=36000! TO 36347!
30 READ A*
40 A=VAL("8<H ,, +A*)
50 POKE I.
60 N=N+A
70 NEXT
80 IF N034758! THEN PRI NT "ERROR EN
DATAS": STOP
90 PRINT "Para grabar hacer :": PRINT
H BSAVE " +CHR* ( 34 ) + " CASNOM " +CHR* ( 34
) + M , 36000, 36350" : END
100 DATA CD,E1,00,CD,E4,00,32,C7,8D
, CD, E4, 00, FE, CF, 30, F9, 21 , 53, 8D, 77, 2
3, 06, 05, CD, 2A, 8D, CD, E7, 00, 21 , 4C
110 DATA 8D,CD,20,8D,CD, 15,8D,3A,C7
, 8D, FE, D3, 28, 70, FE, EA, 28, 67, CD, E 1 ,
0, 21 , C8, 8D, 06, 06, CD, 2A, 8D, 01 , C8
120 DATA 8D,0A,5F,03,0A,57,03,0A,6F
, 03, 0A, 67, 03, 03, 03, ED, 52, 7D, 02, 03, 7
C, 02, 1 1 , C8, 8D, 21 , 5A, 8D, 06, 04, E5
130 DATA E1,CD,20,8D,E5,1A,6F,13,1A
,67, 13,D5,CD,D0,8D,CD, 15, 8D, DI , 10, E
B, El, 18,34, 3E,0D,CD, 18,00,3E,0A
140 DATA CD, 18, 00, C9, 7E, 23, FE, 0D, 28
,03,DF, 18,F7,C9,E5,C5,CD,E4,00,C1,E
1,38,0F,77,23, 10, F3, C9, 21 , 7E, 8D
150 DATA 18,E3,21,8F,8D, 18, DE, El, 21
, Al , 8D, CD, 20, 8D, C3, E7, 00, 4E, 6F, 6D, 6
2, 72, 65, 3A, 20, 20, 20, 20, 20, 20, 0D
160 DATA 49,6E,69,63,69,6F,3A,0D,46
, 69, 6E, 61 , 6C, 3A, 0D, 45, 6A, 65, 63, 75, 6
3,69, A2,6E,3A,0D,4C,6F,6E,67,69
170 DATA 74,75,64,3A,0D,50,72,6F,67
,72,61,6D,61,20,65,6E,20,4C,4F,41,4
4,0D,50,72,6F,67,72,61,6D,61,20
180 DATA 65,6E,20,43,4C,4F,41,44,0D
, 45, 72, 72, 6F, 72, 2C, 63, 61, 72, 67, 61, 2
0, 69, 6E, 74, 65, 72, 72, 75, 6D, 70, 69
190 DATA 64, 61, 20, 6F, 20, 64, 65, 66, 69
, 63, 69, 65, 6E, 74, 65, 0D, 00, 20, 20, 20, 2
0,20,20,20,20, 11, 10,27, CD,EB,8D
200 DATA 1 1,E8, 03, CD,EB,8D, 11,64,00
, CD, EB, 8D, 1 1 , 0A, 00, CD, EB, 8D, 1 1 , 01 ,
0,3E,2F, 19,3C,FE,00,ED,52,4F,CD
210 DATA 20,00,79,30,F4,DF,C9
: ■
II
• » • •••••••«
; Prograsa que averigua las
; direcciones de inicio, final
j y ejecucién de un prograaa
; grabado en cinta .
; por Rom Van-6inkel
I
ii
11
ORG
36MB
11
LOAD 36#M
12 8CA# CDE1M
CALL BE1H
13 8CA3 CDE4M
CALL IE4N
14 8CA6 32C7BD
LD
(DAT6LA
15 8CA9 CDE4M
LOOP:
CALLIE4H
16 8CAC FECF
CP
2B7
17 8CAE 3BF9
JR
NC,L0OP
18 8CBI 21538D
LO
HL, DAT 1
19 8CB3 77
LD
(HL) , A
2§ 8CB4 23
INC
HL
21 8CB5 Mf5
LD
B,5
22 8CB7 CD2A8D
CALL READ
23 8CBA CDE7N
CALL IE7H
24 8CBD 214C8D
LO
HL, DATB
25 8CCf CD2I8D
CALL TEXT
26 8CC3 CD158D
CALL LF
27 BCC6 3AC78D
LD
A, (DAT6)
28 8CC9 FED3
CP
211
29 8CCB 2871
JR
Z.CLOAD
31 8CCD FEEA
CP
234
31 8CCP 2867
JR
Z.LOAD
32 8CD1 CDElf»
CALL BE1H
33 8CD4 21C88D
LD
HL,DAT7
34 8CD7 1616
LD
B,6
35 8CD9 CD2A8D
CALL READ
36 8CDC f 1C88D
LD
BC,DAT7
37 8CDF M
LD
A, <BC)
38 8CEB 5F
LD
E,A
39 8CE1 13
INC
BC
40 8CE2 f A
LD
A,<BC)
41 8CE3 57
LD
M
42 8CE4 f3
INC
BC
43 8CE5 f A
LD
A, (BC)
44 BCE6 6F
LD
L,A
45 8CE7 13
INC
BC
46 8C£8 #A
LD
A, (BC)
47 8CE9 67
LD
H,A
48 8CEA 13
INC
BC
49 BCEB #3
INC
BC
5f 8CEC f 3
INC
BC
51 8CED EB52
SBC
HL, DE
52 8CEF 70
LD
A,L
53 8CFI 12
LD
(BC),A
54 8CF1 13
INC
BC
55 8CF2 7C
LD
M
56 8CF3 #2
LD
(BC) , A
57 8CF4 11C88D
LD
DE,DAT7
HL,DAT2
58 8CF7 215A8D
LD
59 8CFA 1614
LD
B,4
6f 8CFC E5
PUSH HL
61 8CFD El
DIREC:
POP
HL
62 8CFE CD2#8D
CALL TEIT
63 8Df 1 E5
PUSH HL
v/M
wm
€"-*®fe--l ooncz OQi~!QC
f-w , i\uui\m ¡cid
■ 1 ■■■■
II 1 ■III ■
64 8Df2 1A
LO A, (DE)
114 8069 456A6563
DEFB "EjKucién:"
¿3 8013 6F
LD L,A
114 8D6D 756369A2
66 8M4 13
INC DE
114 8D71 6E3A
67 8M5 1A
LO A, (DE)
115 8073 0D
DEFB 13
68 8M6 67
LD H,A
116 8074 4C6F6E67
DEFB "Longitud:"
69 8D07 13
INC DE
116 8078 69747564
71 8D08 DS PUSH DE
116 BD7C 3A
71 8M9 CDDf8D
CALL PRINT
117 8D7D 0D
DEFB 13
72 80fC C01S8D
CALLLF
118 8D7E 50726F67 DAT3:
DEFB "PrograM en LOAD'
73 BDfF DI
POP DE
118 8082 72616061
74 8010 1IEB
DJNZ DIREC
118 BD86 20656E20
73 8D12 El
POP HL
118 8D8A 4C4F4144
76 8013 1834
JR FIN
119 B08E 0D
DEFB 13
77 8015 3E0D LF:
LD A, 13
120 8D8F 50726F67 DAT4:
DEFB "Prograu en CLOAD
78 8017 CD1800
CALL 18H
120 8D93 72616061
79 801A 3EM
LD A, 10
120 8097 20656E20
8f BD1C CD18M
CALL 18H
120 8D9B 434C4F41
81 BD1F C9
RET
120 8D9F 44
82 8D2f 7E TEXT:
83 8021 23
LD A, (HL)
121 8DA0 0D
DEFB 13
INC HL
122 BDA1 4572726F DAT5:
DEFB "Error, carga "
84 8022 FEfD
CP 13
122 8DA5 722C6361
85 8024 28f3
JR Z, FTEXT
122 8DA9 72676120
86 8026 DF
RST 18H
123 8DA0 696E7465
DEFB "interruipida o '
87 BD27 18F7
JR TEXT
123 8DB1 7272756D
88 8029 C9 FTEXT:
RET
123 8005 70696461
89 8D2A E5 READ:
PUSH HL
123 8DB9 206F20
91 8D2B C5
PUSH BC
124 8DBC 64656669
DEFB "deficiente"
91 BD2C CDE4N
CALL 0E4H
124 8DC0 6369656E
92 8D2F Cl
POP BC
124 8DC4 7465
93 8031 El
POP HL
125 8DC6 0D
DEFB 13
94 8031 38fF
JR C, ERROR
126 80C7 00 DAT 6:
DEFB
95 8033 77
LO (HL) , A
127 8DC8 20202020 DAT7:
DEFB "
96 8034 23
INC HL
127 8DCC 20202020
97 8035 1F3
DJNZ READ
128 8DD0 111027 PRINT:
LO DE, 10000
98 8037 C9
RET
129 8DD3 CDEB8D
CALL PR1
99 8D38 217E80 LOAD:
LD HL,DAT3
130 8D06 11E803
LD DE, 1000
llf 8D3B 18E3
JR TEXT
131 8DD9 CDEB80
CALL PR1
lfl 8030 218F8D CLOAD:
LO HL,DAT4
JR TEXT
132 8DDC 116400
LD DE, 100
CALL FUI
102 8040 18DE
133 8DDF CDEB8D
113 8042 El ERROR:
POP HL
134 8DE2 U0A00
LD DE, 10
114 8043 21A18D
LD HL,0AT5
135 8DE5 CDEB8D
CALL PR1
115 8046 CD208D
CALL TEXT
136 8DE8 110100
LD DE, 1
106 8049 C3E7M FIN:
JP 0E7H
137 8DEB 3E2F PR1:
LD A,47
107 804G 4E6F6D62 DATf :
DEFB "Notare:"
138 8DED 19
ADD HL,DE
INC A
107 8051 72653A
139 BDEE 3C PR2:
118 8053 2f2f2f2f DAT1:
DEFB '
140 8DEF FE00
CP
118 8057 2021
141 8DF1 ED52
SBC HL DF
lf9 8059 fD
DEFB 13
142 8DF3 4F
LO C,A
111 BD5A 496E6963 DAT2:
DEFB "inicio:"
143 8DF4 CO20M
CALL 20H
llf 8D5E 696F3A
144 B0F7 79
LO A,C
JR NC.PR2
111 8061 ID
DEFB 13
145 80F8 30F4
112 BD62 46696E61
DEFB "Final:"
146 8DFA DF
RST 18H
112 8066 6C3A
147 8DFB C9
RET
113 8068 ID
DEFB 13
148
ENO
i i\üüi\m h uí
por Roni Van
Este corto programa sirve para buscar en una zona de memoria p
datos (bytes).
Los datos que deseemos buscar pueden
ASCII: Escribimos los caracteres que queramos buscar y pulsamos BETUBJT.
BYTES: Decimos cuantos datos deseamos introducir e introducimos dichos datos en de
DISECCION: Introducimos la dirección que deseemos buscar.
El programa nos irá escribiendo todas las direcciones donde se encuentran los datos a buscar,
(o no haya encontrado ninguna dirección) escribirá PIN y terminará.
El programa en Basic está lo más empaquetado posible para limitar la menor cantidad de memoria posible.
Aparte del listado en ensamblador, adjuntamos dos listados, el primero es el cargador de Basic, y el segando
es el listado en sí.
El listado en ensamblador es bastante corto, y se limita a coger de la tabla donde se encuentran los caracteres a
el primero, con la instrucción CPIK busca en la memoria el lugar donde se encuentra, y una vez encontrado, com;
demás datos. Como el programa guarda en la memoria la dirección donde se encuentra al volver al Basic, y la
memoria que le falta de explorar, al llamarlo de nuevo, seguirá explorando desde donde lo dejó.
El programa en Basic pone en la memoria todos los datos (dirección de inicio, longitud, caracteres a buscar y una señal
de fina que es un 13 (un return en ASCII), por lo que queda limitado a buscar caracteres que no sean iguales a 13. Pero los
que sepan un poco de programación no le encontrarán ningún problema a cambiar el código 13 por otro que les vaya
Una vez introducidos los parámetros, el programa va llamando a la subrutina de ensamblador hasta que ésta le
un como la dirección a buscar, indicando así que ya ha finalizado, con lo que el programa también finaliza.
, ,
1
***
Cargador
CARBUS ***
3 '
10 CLS:PRINT"Un momento .
20 FOR 1=34400! TO 34451!
30 READ A*: A= VALÍA*)
40 POKE I,A
50 N=N+A
60 NEXT
70 IF NO 1352 THEN PRI NT "ERROR EN D
ATAS": STOP
80 PR I NT " GRABAR <S/N>";
90 A*=INPUT* ( 1 ) : PRINTA*: IF A*<>"S"
AND A*<>"N" THEN GOTO 80
IF A*="N" THEN END
BSAVE " CAS : CARBUS " , 34400 ! , 3445 1 !
END
DATA 2A,94,86,ED,4B,96,86, 11,98
,86, 1A,ED,B1,E5,78,FE,00,20,0B,79,F
E, 00, 20, 06, El, 21, 01, 00, 18, 0E, 13
140 DATA 1A,FE,0D,28,07,BE,23,28,F6
,E1, 18, DC, El, 22, 94, 86, ED, 43, 96, 86, C
9
100
110
120
130
10 CLEAR200, 34400 1 : SCREEN0: KEYGFF: W
IDTH40: COLORI 5, 4, 4: DEFUSR=34400 ! : IN
PUT"Direccion inicial : " ; A: INPUT"Dir
eccion -final : ";B: I FB< =ATHENB=65535 !
1
I
1 PPnfZQQffiQC
w i i\üut\m Sid
:L0CATE17, liPRXNTB
20 PRINT M (A)scii (B)ytes (D
)ireccion : " ; : A*=INPUT* < 1 ) : P
RINT A*:ON ASC(A*>-64 GOTQ 4
0,60,20,50
30 GOTO20
40 INPUT"Caracteres: ";A*:FO
RI=1T0LEN(A$) : P0KE34459 ! + 1 , A
SC(MID*<A*, 1,1) ) :NEXT:GOTO70
50 INPUT"Di rece ion: ";C:D=INT
<C/256) :E=C-D*256:PÜKE 34460
! , E: P0KE34461 f , D: PÜKE 34462!
, 13:GOTÜ80
60 INPUT"Cuantos
RI=1T0C:PRINT I;
: H ;D:POKE 34459
70 POKE 34459
80 PRINT: C=INT (A/256) : D=A-C*
256: P0KE34456 ! , D: P0KE34457 ! ,
C
90 G=B-A:E=INT(G/256) :F=G-E*
256:P0KE34458! ,
datos" ;C:FO
INPUT "dato
+I,D:NEXT
13
■lllllllllll
_
! , F : PÜKE34459 ! , E: D=USR ( ) : A=PEEK ( 34456 ! > +
PEEKÍ34457! ) *256-l : IFA=0THENPRINT"Fi n " : EN
DELSEPRINT"Di rece i on : " ; A: GOTÜ90
100 END
—
1
2
3
4
5
6
7
8
9
lf
11
12
13
14 8661 2A9886
15 8663 ED4B9A86
16 8667 U9C86
17 866A 1A
18 866B ED81
19 8660 E5
21 866E 78
21 866F FEfl
22 8671 2MB
23 8673 79
24 8674 FEf f
25 8676 2N6
26 8678 El
27 8679 211110
28 867C 1812
29 867E 13
3f 867F 1A
31 8681 FEID
32 8682 28#B
33 8684 BE
34 868S23
35 8686 28F6
36 8688 FE23
37 868A 28F2
38 868C El
39 868D 1808
4i B68F El
41 869f 229886
42 8693 ED439A86
43 8697 C9
44
45
46 8698 Mil
47 869A Mff
48 B69C ff
49
; I I t CARBUS t t t
;
; Subrutint m ensatólador
; para buscar una cadena de
; bytes en la eeeoria y
; devolver la dirección donde
; se encuentra dicha cadena
; al Basic .
í
; Por Roni Van-fiinkel
i
QRB 344N
LOAD 344H
LD HL, (DAT1 )
LD BC,(DAT2>
CAR6: LO DE, DAT3
LOOP: LD A, (DE)
CPIR
PUSH HL
LO A f B
CP f
JR NZ,L00P1
LD A,C
CP f
JR NZ t L0QPl
POP HL
LD HL, 1
JR FIN
L00P1: INC DE
LD A, (DE)
CP 13
JR Z,FIN1
CP (HL)
INC HL
JR Z,L00P1
35
Z,L00P1
HL
CAR6
FINI: POP HL
FIN: LD (DAT1),HL
(DAT2),BC
DAT1:
DAT2:
DAT3:
CP
JR
POP
JR
POP
LD
LD
RET
0R6 34456
LOAD 34456
DEFB f,f
DEFB 1,1
DEFB I
END
; INICIO
;HL B DIR. INICIAL
;BC=L0N6ITUD
;DE=C0NIENZ0
;A=PRIHER CARAC
; BUSCA
;HL=DIR. CARAC. *\
;VER SI BCM
LO ES, VOLVER
; BUCLE BUSQUEDA
J FINAL DE LA TABLA?
¡SI COINCIDEN SIGUE
;ES UN COMODIN?
;N0 COINCIDEN, VUELVE
;DIR. ENCONTRADA
; CARGA OIR.
;CAR6A LONGITUD
; ORI GEN DE LA TABLA
;DIR. INICIO
; LONGITUD
; CADENA DE CARAC.
•••••••
I
® I l\UUl\l II II u
LE TBÜS
2 * Cargador para el programa LETBU
S
3 *
10 CLS: PRINT "Un momento ..."
20 FOR 1=36000! TO 36153!
30 READ A*
40 A=VAL("8tH"+A*>
50 POKE I,A
60 N=N+P*
70 NEXT
80 IF NO 15634! THEN PRINT"ERRGR EN
DATAS" : STOP
90 PRINT "Para grabar hacer :": PRINT
" BSAVE " +CHR* < 34 ) + " LETBÜS " +CHR* ( 34
) + " , 36000, 36155" : END
100 DATA 3E,0F,32,E9,F3,3E,04,32,EA
, F3, 32, EB, F3, 3E, 28, 32, AE, F3, CD, 6C,
0, CO,CC,00,21,00,80, 11,28,00,01
110 DATA 98,03,E5,CD,5C,00,E1,3E,00
,32, 16,F4,E5,2E,01,26, 1 1 , CD, C6, 00, E
1, E5,CD,0E,8D,E1,3E,08,CD,41,01
120 DATA FE,FF,28,F7,CB,7F,28, 12, CB
,67,28, 12, CB, 77, 28, 19, CB, 6F, 28, 0D, C
B,47,28, 17, 18,C3,23,C3,BB,8C,2B
130 DATA 18, BC, 1 1 , 27 , 00, ED, 52, C3, BB
,8C, 11,28,00, 19, 18, AÉ,C9, 1 1,10, 27, C
D,29,8D, 11,E8,03,CD,29,8D, 11,64
140 DATA 00,CD,29,8D, 1 1 , 0A, 00, CD, 29
,8D, 11, 01,00, 3E,2F, 19,3C,FE,00,ED,5
2, 4F, CD, 20, 00, 79, 30, F4, DF, C9
r nos permitirá visualizar toda la pantalla en formato de
mensaje de un programa, encontrar su comienzo o simplemente
nde se almacenan variables alf anuméricas.
(la que comienza por el label PRINT) que nos
HL en decima l e n la pantalla.
=====
i
2
3
4
5
6
7
8
9
lf
LETBÜS t I t
»
; Progrua que presentí toda
; la Mioria central en foriato
; caracteres para localizar los
; textos de un prograaa .
;
; Por Rom Van-Sinkel
flft>
¡DIRECCION INICIO
ÉÉÉ • # # • i
'y^íSÉfreA OOfUZ OQi~i.QC
11
12 8121 3E#f
LO A, 15
¡COLOR 15.4.4
13 B#22 32E9F3
LD (0F3E9H>,A
14 8123 3E04
LD A,4
15 BÍ27 32EAF3
LD (§F3EAH),A
16 802A 32EBF3
LO (0F3EBH) ,A
17 8I2D 3E28
LD A,4f
18 8f2F 32AEF3
LD (fF3AEH),A
CALL 6CH '
19 8132 CD6C00
{SCREEN0
21 8135 CDCCN
CALL fCCH
21 8038 211181
PR06:
LD HL, 32768
;HL«INICI0
22 M3B 1128M
BUCLE:
LD DE, 48
}DE=0R6 PANT
■ _
23 8I3E 119813
24 8141 ES
25 8042 CD5C00
26 8945 El
27 8046 3EM
28 8*48 3216F4
29 804B E5
3f B04C 2EI1
31 804E 2611
32 BfSf CDC6M
33 8153 El
34 8154 E5
35 8155 CD8EB0
36 8158 El
37 8159 3E08
38 8058 CD4101
39 805EFEFF
40 8060 28F7
41 8062 CI7F
42 8064 2812
43 8066 CB67
44 8068 2812
45 806A CB77
46 806C 2819
47 806E CB6F
48 8070 2B0D
49 8072 CI47
50 8074 2817
51 8076 18C3
52 8078 23
53 8079 C33B80
54 807C 2B
55 M7D 18BC
36 8I7F 112700
57 8082 ED32
58 8084 C33B80
59 8087 112800
60 808A 19
61 B08B 18AE
62 80BD C9
a
44
63
té
67 808E 111027
68 8091 CM980
69 8094 UEB03
70 1097 CM980
71 809A 116400
72 809D CDA9I0
73 80A0 110A00
74 80A3 COA990
75 80A6 110100
76 80A9 3E2F
77 B0AB 19
78 80AC 3C
79 80AD FE00
80 80AF ED52
81 8011 4F
82 8012 CD2000
83 B0B5 79
84 8006 30F4
85 80B8 DF
86 8019 C9
87
TECLA:
LD
PUSH
CALL
POP
LD
LD
PUSH
LD
LD
CALL
POP
PUSH
CALL
POP
. LD
CP
JR
BIT
JR
BIT
JR
BIT
JR
BIT
JR
BIT
JR
JR
INC
JP
DEC
JR
LD
SBC
JP
LO
ADD
JR
EIIT: RET
;
¡ SUBRUTINA QUE
; VALOR DE HL FJ
RIGHT:
LEFT:
UP:
OC,920
HL
5CH
HL
M
(0F416HI.A
HL
M
H, 17
0C6H
HL
HL
PRUT
HL
M
141H
255
Z, TECLA
7,A
Z, RIGHT
4, A
Z.LEFT
6,A
I, WM
5, A
Z.UP
0,A
Z.EXIT
8UCLE
HL
BUCLE
HL
BUCLE
DE, 39
HL.DE
BUCLE
DE, 40
HL.DE
BUCLE
;BC>L0N6ITUI
{PONER EN PANTALLA
{SALIDA POR PANTALLA
IHPRIHE EL
DECIMAL
PRINT:
PR1:
PR2í
LD DE,100M
CALL PR1
LD DE, 1000
CALL PR1
LD DE, 100
CALL FUI
LO DE, 10
CALL PR1
LD DE, 1
A, 47
HL,K
A
HL, DE
C,A
CALL 20H
LD A,C
JR NC.PR2
RST 18H
RET
END
LD
ADD
INC
CP
SBC
LD
{TECLADO
{PULSACION ?
{SINO
{CURSOR IZQUIERDA
{CURSOR ABAJO
{BARRA > SALIR
{AVANZAR LENTO
{RETROCEDER LENTO
¡RETROCEDER RAPIDO
{AVANZAR RAPIDO
{VOLVER AL BASIC
mk B mh A # ¿¿ ■ • -
1
TRUCOS DEL
PROGRAMADOR
SIMETRIA EN
SCREEN 2
Javier Herreruela Morón, de Madrid, nos
envía un corto pero interesante programa
en ensamblador. Este programa permite la
realización de una simetría de la pantalla
respecto al eje vertical que pasa por el cen-
tro de la misma.
De este modo, la mitad izquierda de la
pantalla resultará copiada simétricamente
en la mitad derecha. Hay que avisar que esta
simetría se realizará sólo si estamos en
S CREEN 2.
La rutina en C.M. ocupa 54 bytes ubicados
entre las direcciones 60000 y 50083. Sin
embargo la rutina es totalmente reubicable
y podéis situarla en la dirección que os pa-
rezca más oportuna.
Incluimos dos listados. El primero es el
correspondiente al programa fuente en len-
guaje ensamblador, mientras que el segun-
do es el cargador en BASIC. En este segundo
listado hemos incluido una D amada a la ru-
tina a modo de ejemplo, que podéis sustituir
por vuestros propios gráficos.
La rutina tarda 2.5 segundos en ejecutar-
se totalmente. Aquí os incluimos los corres-
pondientes listados.
LISTADO 1
1 *
2 » *** SIMETRIA *»*
3 '
4 * Por Javier Herreruela
5 7
6 ' Para MSX-Extra
7 '
10 FOR J=50000! TO 50053!
LISTADO Z
3
4
5
6 C350
7 C353
8 C356
9 C358
10 C35A
11 C35C
12 C35E
13 C35F
14 C360
15 C362
16 C363
17 C364
18 C367
19 C368
20 C369
21 C36A
22 C36C
23 C36E
24 C371
25 C374
26 C375
27 C376
28 C377
29 C379
30 C37A
31 C37B
32 C37E
33 C37F
34 C380
35 C381
36 C383
37 C385
38
210000
CD4A00
0608
CB3F
CB11
10FA
E5
7D
EEFB
6F
79
CD4D00
El
23
7C
FE18
20E5
210020
CD4A00
4F
E5
7D
EEF8
6F
79
CD4D00
El
23
7C
FE38
20EC
C9
VPEEK:
VPOKE:
PAT:
BYT:
COL:
ÜRG
50000
EQU
1— wi U
4AH
EQU
4DH
LD
HL,
CALL
VPEEK
LD
B.8
SRL
A
RL
c
DJNZ
BYT
PUSH
HL
LD
A. L
XOR
248
LD
L. A
LD
a r
CALL
\-* ni — t —
VPOKE
POP
HL
INC
HL *
LD
A, H
CP
24
JR
NZ, PAT
LD
HL, 8192
CALL
VPEEK
LD
C. A
PUSH
HL
LD
A. L
XOR
248
LD
L. A
LD
A, C
CALL
VPOKE
POP
HL
■ 1 * —
INC
HL
LD
A, H
CP
56
JR
NZ,C0L
RET
END
20 READ A*:POKE J , VAL < "«(H'^+A* )
30 S=S+PEEK(J) :NEXT
40 IF S06295 THEN PRINT "Hay un ER
ROR" : END
50 SCREEN 2
60 FOR H=l TO 50:PSET (255*RND (-TIM
E) , 191*RND(1) ) , 1 5*RND ( 1 ) : NEXT
70 CIRCLE (50,90) ,30, ,, ,4/3
80 LINE <0,0)-(255, 191)
90 BEEP:A*=INPUT*(1)
100 DEF USR-50000! :A=USR(0)
110 GOTO 110
1000 DATA 21,0,0,cd,4a,0,06,08,cb,3
■f ,cb, 11, 10,fa,e5,7d,ee,f 8
1010 DATA 6-f ,79,cd,4d,0,el,23,7c,fe
, 18, 20, e5, 21, 0,20
1020 DATA cd,4a,0,4-f , e5, 7d , ee, f 8, 6f
,79,cd,4d,0,el,23,7c,fe,38,20,ec,c9
42
¡NOS APLICAMOS A SER UTILES!
A TRAVES DE MSX CLUB DE MAIUNC PUEDES ADQUIRIR
BASIC TUTOR IDEALOCIC
Deja el manual de
BASIC en cartucho
PVP 3.500 pts.
ADAPTADORES TARJETAS!
INTELIGENTES
BEE CARD Y SOFTCARD
f
V.
.1 ./•
No te q
al margen
V disfruta
de las tarjetas
í Nombre y apellidos
I Dirección
I Población
I □ Tutor Basic Ptas. 3.500-
ENVIA HOY MISMO ESTE CUPON ^
Prov.
Tel.
□ Adaptador Softcard Ptas. 2.850- I
□ Shark Hunter Ptas. 5.200-
□ Le Mans 2 Ptas. 5.200-
| Gastos de envío por cada producto 100,- pts. Remito talón bancario de pts. a la orden de Manhattan |
Transfer, S.A. Enviar a MSX CLUB de MAILING, Roca i Batlle 10-12 bajos - 08023 Barcelona.
□ SweetAcom Ptas. 5.200-
□ BarnStormer Ptas. 5.200-
□ Adaptador Bee Card Ptas. 2.850-
□ Backgammon Ptas. 5.200-
□ Chock'n Pop Ptas. 5.200-
"eno alacho Rou te h ^ré
1
< 1f -
TM
TM
ti
A"
Dará
iter
KONAMI SOLO EDITA SUS PRODUCTOS
RECORTA Y ENVIA ESTE CUPON A KONAMI SHOP.
FRANCISCO NAVACERRADA, 19. 28028 MADRID.
NOMBRE Y APELLIDOS:
DIRECCION:
POBLACION:
FORMA DE PACO: CONTRARREMBOLSO [ I POR TALON BANCARIO □
-COD. POSTAL:
.PROVINCIA:—